【问题标题】:SimpleAudioEngine, background Volume down on playEffect then back upSimpleAudioEngine,背景在 playEffect 上调低音量然后备份
【发布时间】:2015-02-25 17:32:03
【问题描述】:

在 Cocos2d (android) 中,我尝试在 playEffect 运行时降低背景音量,而不是在 playEffect 结束后将其恢复。我有这个代码:

auto audio = SimpleAudioEngine::getInstance();

audio->playBackgroundMusic("sound/abc-theme.mp3", true);

audio->setBackgroundMusicVolume(0.1);

audio->playEffect("sound/airplane.mp3", false, 1.0f, 1.0f, 1.0f);

audio->setBackgroundMusicVolume(1);

问题是我不知道如何让 playEffect 结束,此代码“立即”将背景音乐设置为 1。如何在 PlayEffect 期间将背景音乐的音量设置为 0.1。

【问题讨论】:

    标签: android cocos2d-x simpleaudioengine


    【解决方案1】:
    auto audio = SimpleAudioEngine::getInstance();
    
    audio->playBackgroundMusic("sound/abc-theme.mp3", true);
    
    audio->setBackgroundMusicVolume(0.1);
    
    audio->playEffect("sound/airplane.mp3", false, 1.0f, 1.0f, 1.0f);
    
    this->scheduleOnce(schedule_selector(LoadingScene::loadingCallBack), 1.0f);
    

    创建一个函数

    void ClassName::loadingCallBack(){
    
     audio->setBackgroundMusicVolume(1);
    
     }
    

    【讨论】:

      【解决方案2】:

      我是这样做的

       const float Delay=1.0f;
       this->runAction(Sequence::create(DelayTime::create(Delay),CallFunc::create(CC_CALLBACK_0(ABC::bgVolumeUp, this)),nullptr));
      

      和功能

      void ABC::bgVolumeUp(){
      
      audio->setBackgroundMusicVolume(1);
      
      }
      

      基本上它与 pankaj 建议的相似。他给了我这个方法的想法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多