我正在使用Android的MediaCodec类从音频文件中读取原始数据。这很好用。
问题是我不知道假设输出数据总是16位是否安全?
我可以通过实验告诉输出是 16位,但我不知道如何在运行时检查它。 MediaCodec文档似乎没有告诉我。 MediaFormat KEY_CHANNEL_MASK
可以告诉我,但MediaCodec似乎没有设置这些标志。它设置了采样率和mime类型,但没有任何可以明确告诉我位大小。
我认为考虑到后续块的显示时间和采样率之间的差异,我应该能够计算它,但这似乎不太令人满意。
有没有办法告诉,还是写在某个我不需要的地方?
答案 0 :(得分:7)
目前Android的输出总是16位。如果将来发生变化,我们将添加指定格式的其他格式密钥。请注意,KEY_CHANNEL_MASK
只会告诉您包含哪些频道(例如左侧,右侧,中央等),而不是示例格式。
答案 1 :(得分:1)
不,不。如果您有24位PCM(WAV)文件,它将为您提供24位音频。而且似乎无法确定这一点。我在这里添加了一个问题MediaCodec and 24 bit PCM