在Android中从解码的音频文件绘制音频波形图

4
我正在尝试从解码后的音频文件中绘制自定义波形视图。问题在于,当我使用MediaCodec类将m4a声音文件解码为pcm时,解码过程可能需要很长时间。
我遵循this CTS test以获取解码后的数组。
是否有任何方法可以最小化解码过程或获取有关音频文件帧的相关信息,而无需每次解码整个文件。
1个回答

2
您无需等待整个文件解码完成,一旦每帧数据可用,您就可以使用解码后的数据。
在您提供的CTS测试中,请查看223-234行 - 在这里,已从解码器接收到解码数据缓冲区,并将其复制到输出缓冲区。如果您更改此操作以在此处处理数据,则可以立即处理解码数据,而无需等待整个文件。(这也是播放文件的方式。)
请记住,您无法真正假设输出帧的大小,它取决于文件中使用的编解码器的帧大小。(对于AAC的大多数常见版本,为1024个样本。)因此,根据您想要如何处理输出数据,如果必要,您可能需要将其缓冲成稍大的块。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接