我只是问这个问题,因为我在互联网上找不到任何关于它的信息,可能是因为它是一种罕见的情况。
问题是我有一个使用多个 MediaPlayers 播放 mp3 样本的钢琴应用程序。这是获得快速响应的唯一方法,而不必像在声音池中那样将它们全部加载到内存中,或者求助于本机代码合成器。
它工作得很好,我在普通的安卓设备上没有任何问题。但是,在 Amazon Kindle Fire(第一版)上,我在弹奏几个键后会发出奇怪的声音。看起来 MediaPlayer 本机实现在某种程度上存在一些错误。我没有得到真正的错误,但声音被切断或产生乱码的奇怪渲染噪音。这当然让我的用户不满意,并且给我留下了一个低评价的应用程序。
我尝试使用 .ogg 示例切换渲染引擎。这些效果很好,不再有奇怪的噪音,但它们也被切断了,使它不是一个很好的替代品。
我发现的唯一线索是一些关于无效数据的错误消息,我有时会收到。我会尝试看看我是否可以修复那个,但我担心它与它无关。
有人在 Kindle Fire(或其他平台)上遇到过类似问题吗?
更新
似乎有时会弹出有关不正确数据的奇怪错误确实导致了这种情况。我正在使用 AssetFileDescriptors 加载原始资源文件。这是完全相同的东西MediaPlayer.create(R.raw.mp3file)
。我刚刚用 sdcard 上的样本进行了测试,现在我没有遇到任何奇怪的音频问题。所以,我想我真的可以解决这个问题。:)