我把 Android 的 SoundPool
看作是在我的通用游戏开发库中实现声音效果的一种机制。它 看起来理想。
但是一些研究表明,SoundPool
中存在 所有 种类 的 虫子。SoundPool
的漏洞还有用吗?
因为我正在开发一个库,所以 SoundPool
中的任何 bug 都会变成我的库中的 bug,我想让我的用户与之隔离。
所以我的问题基本上是: 音频应该使用什么 API?
使用 AudioTrack
和编写自己的混音器并不是不可能的。但显然,最好避免这样做。有没有 API 可以为我提供解码?
我需要能够播放合理数量的同步音效(至少16,让我们说) ,并有更开放。声音需要开始以低延迟播放。需要支持 WAV
文件(MP3/Ogg 不重要)。声音效果需要支持无缝循环和动态,个人音量调整。Android 应用程序的生命周期需要得到适当的支持。
我听说有一个1MB 的限制为 SoundPool
的地方,这可能是可以接受的每个单独的声音效果,但不是所有的缓冲区/声音。有人能告诉我限额是多少吗?
最后,我需要能够播放背景音乐以及压缩格式,低 CPU 负载。我认为 MediaPlayer
是这方面的理想选择。它可以与另一个 API 并行使用吗?
我知道一些人已经使用 MediaPlayer
来填补 SoundPool
。但它支持我需要的特性吗?
我还漏掉了什么音频应用程序接口吗?