我试图从解码的音频文件中绘制一个自定义波形视图。问题是,当我使用MediaCodec类将m4a声音文件解码为pcm时,解码过程可能需要很长时间。
我跟踪这个CTS测试得到解码数组。
是否有任何方法来最小化解码过程或获取有关音频文件帧的相关信息,而无需每次解码整个文件。
发布于 2015-04-17 09:14:14
您不需要等待整个文件被解码,您可以使用从每个帧解码的数据,一旦它可用。
在您链接的CTS测试中,请看一下第223行-234行--这里已经从解码器接收到了解码数据的缓冲区,解码器被复制到输出缓冲区中。如果您将此更改为直接处理数据,则可以立即处理已解码的数据,而无需等待整个文件。(这也是文件回放的方式。)
请记住,不能真正假定输出帧的大小,这取决于文件中使用的编解码器的帧大小。(对于最常见的AAC版本,它是1024个样本。)因此,根据您想要处理输出数据的方式,如果需要的话,您可能希望将其缓冲为稍大的块。
https://stackoverflow.com/questions/29694667
复制相似问题