我成功地使用 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}
(顺便问一下,“什么”键是什么?我注意到如果我解释为 4charcode,它是“outC
“......只是一个标志,表明它是一种输出格式?)
那么这里最好的办法是什么?如果我喂ByteBuffer
直接到AudioTrack
当然它播放静态(假设 PCM 16)。
如果我知道这个值,那么我可以自己转换它!
我从其他问题中了解到,您也不能指定输出格式。