我成功使用MediaCodec解码音频,但是当我加载24位样本的文件时,我无法知道这已经发生了。由于应用程序假设是16位样本,因此失败。
当我打印MediaFormat时,我看到了
{mime=audio/raw, durationUs=239000000, bits-format=6, channel-count=2, channel-mask=0, sample-rate=96000}
我假设“bits-format”是一个提示,但是这个键没有在API中声明,并且在输出格式改变时实际上没有发出。我得到了
{mime=audio/raw, what=1869968451, channel-count=2, channel-mask=0, sample-rate=96000}
(顺便说一句什么是“what”键?我注意到如果我将其解释为4charcode,它是“outC
”......只是一个标志,它是一种输出格式?)
那么这里最好的办法是什么?如果我将ByteBuffer
直接送到AudioTrack
,它当然会播放静态(假设PCM 16)。
如果我知道价值,那么我可以自己转换! 我从其他问题中了解到,你也无法决定输出格式。