【问题标题】:Does MediaCodec always give 16-bit audio output?MediaCodec 是否总是提供 16 位音频输出?
【发布时间】:2015-05-15 04:27:12
【问题描述】:

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

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

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

我想考虑到后续块的呈现时间和采样率之间的差异,我应该能够计算出来,但这似乎不太令人满意。

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

【问题讨论】:

    标签: android android-mediacodec


    【解决方案1】:

    目前,Android 中的输出始终为 16 位。如果将来发生变化,我们将添加一个额外的格式键来指定格式。请注意,KEY_CHANNEL_MASK 只会告诉您包含哪些通道(例如左、右、中等),而不是示例格式。

    【讨论】:

    • 那么,如果我假设 16 位,那将是未来的证明?
    • 是的,那应该是安全的。
    • 16 位已经不是未来证明。由于已经支持 24 位和其他格式
    【解决方案2】:

    不,它没有。如果您有 24 位 PCM (WAV) 文件,它将为您提供 24 位音频。而且似乎没有办法确定这一点。我在这里添加了一个问题MediaCodec and 24 bit PCM

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      相关资源
      最近更新 更多