【问题标题】:Force MediaRecorder to produce AAC LC强制 MediaRecorder 制作 AAC LC
【发布时间】:2014-03-05 13:12:38
【问题描述】:

我正在 Android 上录制音频。这是一个相关的sn-p

mediaRecorder = new MediaRecorder();
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

但是,生成的 adts 文件使用 AAC LTP(长期预测)对象类型记录。有什么方法可以强制 MediaRecorder 在所有支持它的设备上生成 AAC LC?

【问题讨论】:

  • 我也遇到了类似的问题。我正在使用 ExoPlayer 播放流式音频。它可以处理使用 AAC_LC 但不能处理 AAC LTP 编码的音频。使用 AAC LTP 录制的样本也无法在 Android 版 chrome 应用中播放; exoplayer 团队表示 AAC LTP 不是受支持的格式。我相信这些样本是在 Android 上录制的;这意味着 Android 正在录制它无法播放的内容。还有另一个AudioEncoder 选项,AAC_ELD,代表Enhanced Low Delay;如果只生产可以解决我们问题的 AAC LC。但是,从它的描述来看,它似乎无济于事

标签: android audio aac


【解决方案1】:

媒体框架中有一个错误,它错误地将 ADTS 文件标记为具有 LTP 对象类型,而实际上它是 LC。此类文件在播放时会被拒绝,因为 Android 不支持 LTP。 如果您改用 THREE_GPP 文件格式录制,录制就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2013-11-17
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多