MediaCodec总是提供16位音频输出吗?

ams*_*ams 5 android mediacodec

我正在使用Android的MediaCodec类从音频文件中读取原始数据.这很好用.

问题是我不知道假设输出数据总是16位是否安全?

我可以通过实验告诉输出 16位的,但我不知道如何在运行时检查它.MediaCodec文档似乎没有告诉我.MediaFormat KEY_CHANNEL_MASK可以告诉我,但MediaCodec似乎没有设置这些标志.它设置了采样率和mime类型,但没有任何可以明确告诉我位大小的内容.

我想,考虑到后续块的显示时间和采样率之间的差异,我应该能够计算它,但这似乎不太令人满意.

有没有办法告诉,还是写在我不需要的地方?

mar*_*one 7

目前Android的输出总是16位.如果将来发生变化,我们将添加一个指定格式的附加格式键.请注意,它KEY_CHANNEL_MASK只会告诉您包含哪些通道(例如,左,右,中心等),而不是样本格式.