某些设备上的Android AudioTrack速度极慢

时间:2015-06-08 06:05:14

标签: java android mediacodec audiotrack

我有一个用MediaExtractor解码MP3音频的系统,用MediaCodec转换它并用AudioTrack播放。在大多数设备上它工作正常,但在三星Galaxy S3和三星Galaxy Tab上,一些用户报告音频回放非常慢。我无法在仿真器或物理设备上重现它。

1 个答案:

答案 0 :(得分:2)

经过多次麻烦,事实证明问题出在我使用MediaFormat上。在某些设备上,MediaCodec返回的MediaFormat与MediaExtractor返回的MediaFormat不同。帧速率等可能会发生变化。不要使用MediaExtractor返回的MediaFormat实例化AudioTrack,而是必须等到解码开始。此时,MediaCodec.dequeueOutputBuffer()将返回MediaCodec.INFO_OUTPUT_FORMAT_CHANGED。然后可以使用MediaCodec.getOutputFormat()返回正确的MediaFormat来初始化AudioTrack。希望这有助于某人。