在iPhone上完美连续地播放声音



我正在使用cocos2d为iPhone和iPad开发一款游戏,我需要能够在另一个声音完成时播放声音。我有一个配乐被分割成更小的片段,在播放结束和开始之间没有任何空间。

顺便说一句。我不能把这些声音粘到一个文件里然后播放,因为文件的顺序会在运行时被重新安排。

我怎样才能做到这一点?

使用CocosDenshion你可以用

注册一个委托
 [[CDAudioManager sharedManager] setBackgroundMusicCompletionListener:self  
                                        selector:@selector(musicDidFinish)];

CDAudioManager类引用

这个委托将在背景音乐结束时被调用。这当然只适用于当你播放你的声音文件作为背景音乐(与playBackgroundMusic方法)。

如果这对你不起作用,看看object。你会有更多的选择和更大的灵活性。例如,使用ALSource,您可以对表示声音文件的多个ALBuffer对象进行排队。这意味着每当源的缓冲区计数减少到1时,您只需将下一个缓冲区排队,以实现多个声音文件(任何格式)的不间断,顺序播放。

因为object是如此的棒(好吧,我认为是:)),它包含并准备在Kobold2D中使用。

您可以使用单个音频队列或RemoteIO音频单元,并且只需从任何文件中以任何顺序填充原始/PCM音频样本的回调缓冲区。

最新更新