zoukankan      html  css  js  c++  java
  • 【转载】cocos2dx 3.x 声音播放、音量调节

    1. playBackgroudMusic() 

    playBackgroudMusic 只适合播放持续时间比较长的声音文件,比如背景音乐。
    [html] view plain copy
     
     print?
    1. bool PlayMusic::init()  
    2. {  
    3.     if ( !Layer::init() )  
    4.     {  
    5.         return false;  
    6.     }  
    7.   
    8.     bool bRet = false;  
    9.   
    10.     do{  
    11.         CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sky_city.mp3",true);  
    12.         bRet = true;  
    13.   
    14.     }while(0);  
    15.   
    16.     return bRet;   
    17.   
    18. }  

    2. playEffect()

    playEffect 适合播放战斗的打斗声音、技能释放的声音。
    [html] view plain copy
     
     print?
    1. bool PlayMusic::init()  
    2. {  
    3.     if ( !Layer::init() )  
    4.     {  
    5.         return false;  
    6.     }  
    7.   
    8.     bool bRet = false;  
    9.   
    10.     do{  
    11.         //CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sky_city.mp3",true);  
    12.         CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("error.wav");  
    13.         bRet = true;  
    14.   
    15.     }while(0);  
    16.   
    17.     return bRet;   
    18.   
    19. }  

    3. 圆形音量按钮 ControlPotentiometer

    一个圆形音量按钮由底座、进度条、控制按钮三部分组成。创建好音量按钮之后,它具备调节音量的功能,只有鼠标放在控制按钮上拖到一次,进度条就会改变显示范围,当然如果想控制音量,还需要加入监听事件。
     
    [html] view plain copy
     
     print?
    1. bool PlayMusic::init()  
    2. {  
    3.     if ( !Layer::init() )  
    4.     {  
    5.         return false;  
    6.     }  
    7.     ControlPotentiometer* potentiometer = ControlPotentiometer::create("potentiometerTrack.png","potentiometerProgress.png","potentiometerButton.png");  
    8.     potentiometer->setPosition(Point(200,200));  
    9.   
    10.     //监听进度值改变事件  
    11.     potentiometer->addTargetWithActionForControlEvents(this,cccontrol_selector(PlayMusic::onValueChange),Control::EventType::VALUE_CHANGED);  
    12.   
    13.     this->addChild(potentiometer);  
    14.       
    15.     return true;   
    16.   
    17. }  
    18. void PlayMusic::onValueChange(Ref* psender,Control::EventType event)  
    19. {  
    20.     ControlPotentiometer* potentiometer = (ControlPotentiometer*)psender;  
    21.     String* valueStr = String::createWithFormat("%f",potentiometer->getValue());  
    22.     log(valueStr->getCString());  
    23. }  

    4. 音量控制按钮

    ControlSlider 也是有底部、进度条、控制按钮三部分组成。用法和ControlPotentiometer几乎一样。
    [html] view plain copy
     
     print?
    1. ControlSlider* slider = ControlSlider::create("background.png","progress.png","sliderThumb.png");  
    2. slider->setPosition(ccp(300,200));  
    3. //设置滑动条的范围  
    4. slider->setMinimumValue(0);  
    5. slider->setMaximumValue(1000);  
    6. //设置滑动条当前值  
    7. slider->setValue(300);  
    8. slider->addTargetWithActionForControlEvents(this,cccontrol_selector(PlayMusic::sliderChange),Control::EventType::VALUE_CHANGED);  
    9. this->addChild(slider);  
    [html] view plain copy
     
     print?
    1. void PlayMusic::sliderChange(Ref* psender,Control::EventType event)  
    2. {  
    3.     ControlSlider* slider = (ControlSlider*)psender;  
    4.     String* valueStr = String::createWithFormat("%f",slider->getValue());  
    5.     log(valueStr->getCString());  
    6. }  
  • 相关阅读:
    人间故事馆话题:聊聊那些被骗经历,让其他人不再被骗
    路过的风景
    路过的风景
    上海最适合拍照的旅游地点
    Java EE (11)
    五、服务器端的局域网
    P1294 高手去散步 洛谷
    堆排序【模板】
    P3383 【模板】线性筛素数 洛谷
    P1516 青蛙的约会 洛谷
  • 原文地址:https://www.cnblogs.com/dudu580231/p/5684401.html
Copyright © 2011-2022 走看看