Cocos2d播放2个不同的背景音乐文件或循环播放效果

mxg*_*mxg 4 cocoa-touch objective-c cocos2d-iphone ios

我需要有场景的背景音乐和角色的背景音乐,但是当角色做出一些动作时我必须停止它.

对于这个问题,我必须选择:

  1. 同时播放2个背景音乐文件,并停止与角色相关的文件
  2. 循环音效.

哪一个是可能的2推荐?

问候!

Jam*_*ter 16

你说你正在使用cocos2d,所以我假设你也使用SimpleAudioEnginecocos2d提供的.

有了SimpleAudioEngine,它不可能播放2个背景音轨.可以通过一些小的修改来循环效果:

  • 提供-(int) playEffect:(NSString*) file loop:(BOOL) loop信息;
  • 在这种方法中,您需要找出正常播放效果.你正在寻找的东西ALUInt是用作声音的句柄.请参考这个.你需要它来阻止循环.
  • 提供一个-(void) stopEffectWithHandle:(int) handle接收并将其传回OpenAL以停止效果.

-编辑-

这是一些用于循环效果的代码:

int handle = [[SimpleAudioEngine sharedEngine] playEffect:name];
if (loop) {
    alSourcei(handle, AL_LOOPING, 1);
}
return handle;
Run Code Online (Sandbox Code Playgroud)

还有一些用于阻止效果:

[[SimpleAudioEngine sharedEngine] stopEffect:handle];
Run Code Online (Sandbox Code Playgroud)