说来惭愧,到最后好像自己也没做到些什么出来。
因为工作需求,需要实现同时对多首OGG音频进行无缝循环播放。
我尝试过在Java层用Java解码OGG文件,那效率就不说了,想崩溃就用吧:D
后来用本地代码尝试,但我最终只实现了单线程解码并播放,基于OGG解码库和OpenAL播放,而且是解码完再播放。
其实思路是很简单的,一边解码一边把解码后的数据放进播放器缓存播放就是了。但是由于时间关系后面的没做到。
最后在偶然之下发现BASS库
BASS Library:http://www.un4seen.com/
不得不说这库够强大的。
尝试了下确实可以无缝播放了,同时BASS库本身还有其他很好的功能可以发掘。
另外作者在论坛里也说道,无缝循环也只是在解码时一旦解码到文件尾就重新从头解码而已。
所以最后我选择对它进行了简单的封装,稍微参考MediaPlayer的方法。
具体可以看这里:https://github.com/ViTess/Android-OMEPlayer
往后会逐渐把插件和一些音效功能继续封装,那就不用再去看那个有点莫名其妙的文档了。
时间: 2024-10-14 14:34:11