我需要为场景提供背景音乐,为角色提供背景音乐,但是当角色做出某些动作时我必须停止它。
对于这个问题我必须选择:
- 同时播放2个背景音乐文件,并停止与角色相关的背景音乐文件
- 循环播放音效。
这 2 种中哪一种是可能且推荐的?
Regards!
你说你正在使用 cocos2d 所以我假设你也在使用SimpleAudioEngine
随cocos2d提供。
With SimpleAudioEngine
,无法播放 2 首背景曲目。通过一些小的修改可以循环效果:
- 提供一个
-(int) playEffect:(NSString*) file loop:(BOOL) loop
信息;
- 在这种方法中,您需要了解播放效果通常的作用。你正在寻找的是
ALUInt
用作声音的句柄。保留对此的引用。你需要它来停止循环。
- 提供一个
-(void) stopEffectWithHandle:(int) handle
接受它并将其传递回OpenAL
来停止效果。
-EDIT-
下面是一些循环效果的代码:
int handle = [[SimpleAudioEngine sharedEngine] playEffect:name];
if (loop) {
alSourcei(handle, AL_LOOPING, 1);
}
return handle;
还有一些用于停止效果:
[[SimpleAudioEngine sharedEngine] stopEffect:handle];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)