为什么使用OpenSL ES
一些开发者提醒在Samsung S2 i9100上面使用android原始的SoundPool来播放音效将会导致崩溃,所以我们决定使用OpenSL ES来解决这个问题。但是请注意目前为止只有在I9100上面SoundPool会引起崩溃,所以OpenSL ES只会替换掉I9100上面的SoundPool的实现方式。
怎么样在Cocos2d-x中使用OpenSL ES
实际上,你什么都不需要做。我们将会在你第一次使用SimpleAudioEngine的时候检测你设备类型。如果是I9100,就会自动切换为OpenSL ES,否则就使用SoundPool来播放音效的。
一些限制
OpenSL ES目前只用于samsung i9100。
当前实现的版本对预加载音效的数量有些限制,你最多只能预加载31个音效。
音量接口是有效的,但是当试着去控制音量的时候,可能会有问题。我们发现一些设备,包括I900,对OpenSL ES的支持不是很完美,因此我们不能得到这个音量的准确值。
修复问题
2012-08-17 开发者不需要指定Android平台。OpenSL ES会侦测你设备类型,将会自动的在I9100上面工作。
2012-08-02 当同一个音效在一个很短的时间内播放了很多次,这个音效将会停止,然后重新播放,而不是同时播放很多次这个音效。