2010-11-28 103 views
12

我正在制作一款游戏,并希望有一个游戏音乐的背景循环,并在其上面有两个不同的声音效果通道。我想控制这些频道的音量。我看着fmod,但它超出了我的预算。现在我正在看Apple提供的MixerHostAudio示例。这是一个明显的例子,但有一点点冗长,1000多条线只是为了播放两种声音,所以我想知道我是否应该做其他的事情。在iOS游戏中播放声音的最方便方法?

我理想中的API会是这个样子:

SoundSystem *sounds = [SoundSystem soundSystemWithLoop:@"koto.mp3"]; 
[sounds play:@"chimes.mp3" channel:1 looping:YES volume:0.0]; 
[sounds fadeTo:1.0 channel:1 delay:0.5]; 
[sounds play:@"buddha_bell.mp3" channel:2]; 
+0

在过去的日子CocosDenshion Sound Engine对此很有用。 – Fattie 2016-06-30 15:05:25

回答

11

可以使用AVAudioPlayer的背景环路和Finch自解压。两者都很容易处理。你必须自己在Finch上面编写通道音量控制,但这也不难,只是一组具有通用音量控制的声音。

+0

感谢您将我指向AVAudioPlayer和Finch。我可以只使用多个AVAudioPlayers吗?根据文件,似乎我可以有多个,他们应该混合,没有尝试。 – Bemmu 2010-11-28 23:15:26

12

CocosDenshion Sound Engine does everything你想要的。

它是琐碎使用一旦你在你的项目中得到它。

CocosDenshion是Cocos2D的声音部分。

我个人并不在乎Cocos2D(当然,很多人喜欢它并使用它)。

但是声音的CocosDenshion做你想做的一切没有问题。是的,它同时具有BG循环和SFX。它管理所有内存等。

它很容易使用CocosDenshion(只需将几个文件复制到您的项目) - 没问题。 (你不必为整个Cocos2D情况而蒙骗......你只需安装Denshion部分。)

希望它有帮助!

0

我使用的是SoundMaster引擎。它比CocosDension声音引擎要好得多,因为ARC支持,内存管理和许多其他功能,如淡入/淡出,或相对体积的效果。