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

标签 ios objective-c cocoa-touch cocos2d-iphone

我需要有场景的背景音乐和角色的背景音乐,但当角色做出某些 Action 时我必须停止它。

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

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

这 2 个中哪一个是可能的和推荐的?

问候!

最佳答案

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

使用 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;

还有一些用于停止效果:

[[SimpleAudioEngine sharedEngine] stopEffect:handle];

关于ios - Cocos2d播放2个不同的背景音乐文件或循环播放效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7370886/

相关文章:

ios - 需要继承 NSManagedObject 的自定义类的子类

iphone - 使用 UITabBarController 时如何共享 ManagedObjectContext

objective-c - NSString 和 NSMutableString 连接

objective-c - 当我在 OSX Lion 中启动我的应用程序时,它始终在底层运行,位于其他应用程序后面

iphone - Objective-C for iPhone - 使用简单的日期命令时应用程序崩溃

iphone - 另一个应用程序可以注册我的自定义 url 方案吗

ios - Xcode swift : Cannot close popup Image

iOS key 扣包装锁匠 :- LocksmithError error 3

ios - UIVIew animateWithDuration 线性?

iphone - UIToolbar 项目消失 - ios6 中的奇怪错误