代码之家  ›  专栏  ›  技术社区  ›  barteks2x

如何从MediaCodec解码器输出MediaFormat中获得PCM位深度?

  •  0
  • barteks2x  · 技术社区  · 4 年前

    我正在用解码在线AAC流 MediaCodec 试着玩 AudioTrack 。 AudioTrack 需要 AudioFormat 这需要知道PCM编码的细节。我能够通过将其配置为正确播放音频 ENCODING_PCM_16BIT 但这是否保证始终是16位PCM编码?我不想做那种假设。

    我希望 MediaCodec.Callback.onOutputFormatChanged 将编码信息作为 MediaFormat 参数,看起来应该是这样 https://stackoverflow.com/a/49812393/2399236 ,但这是我通过调用toString()从媒体格式中获得的所有信息:

    aac-drc-heavy-compression=1
    sample-rate=48000
    aac-drc-boost-level=127
    aac-drc-output-loudness=-1
    mime=audio/raw
    channel-count=2
    aac-drc-effect-type=3
    aac-drc-cut-level=127
    aac-encoded-target-level=-1
    aac-max-output-channel_count=8
    aac-target-ref-level=64
    aac-drc-album-mode=0
    

    我应该假设它是16位PCM吗?或者有什么方法可以获得这些信息吗?

    注意:我的目标是minsdk28,目前正在调试器中测试模拟的pixel2neneneba API 30。

    0 回复  |  直到 4 年前
    推荐文章