openAL跨平台开发,解码方式 wav & ogg

由于当前使用的一套openAL的声音播放代码在播放音效的时候略显卡顿,于是今天一直在研究openAL,终于在下午,将所有声音都cache出来后,卡顿问题彻底解决。


首先open AL的处理方式类似于open GL。


入门请移步这里

http://wenku.baidu.com/view/f4db9c270722192e4536f6c8.html

http://apps.hi.baidu.com/share/detail/41860487



由于我一开始使用的ogg方式为音频压缩格式,且压缩比率较高,所以即时解码,对于ios设备来说略显卡顿,iPad2如果在单线程中处理则会出现卡顿,由于iPad2为双核处理器,所以多线程会有着不俗的表现,所以改用多线程,卡顿完全解决,但由于iPad1 cpu速度较慢,且又不是双核,多线程会导致在播放声音的时候略有延迟,很影响游戏效果,于是经过分析我决定采用在loading过程中全部cache的方式解决该问题。缺点:loading时间加长,内存增加。优点:毫无卡顿出现。



另外一开始我曾经想改用wav的方式来播音效,因为wav相对于ogg及mp3这种压缩比率较高的音频文件,解码时占用cpu较小,但后来经过上步处理后,发现问题完全解决,于是放弃wav方式。


总体来说,open AL是一个不错的跨平台的声音解决方案,推荐。



你可能感兴趣的:(多线程,游戏,ios,cache,ipad,跨平台)