【问题标题】:Android Studio Supported PCM Encoding FormatsAndroid Studio 支持的 PCM 编码格式
【发布时间】:2016-03-22 17:46:30
【问题描述】:

我正在尝试使用具有不同采样率和 PCM 编码的 AudioRecord 类录制音频,问题是,在构造 AudioRecord 对象并使用 AudioFormat.ENCODING_PCM_8BITAudioFormat.ENCODING_PCM_FLOAT 实现 AudioRecorder.getMinBufferSize() 方法时,报告不同的错误,例如:

不支持的样本编码。应该是
ENCODING_PCM_8BIT
或 ENCODING_PCM_16BIT。

E/android.media.AudioRecord: getMinBufferSize(): 无效的音频格式。

问题是,我正在使用 Lollipop 在第一代 Moto G 上进行测试,因此根据 Android 开发者文档,AudioFormat.ENCODING_PCM_FLOAT 是受支持的。 显然AudioRecorder.getMinBufferSize() 只适用于AudioFormat.ENCODING_PCM_16BIT

那么我应该如何知道要在构造函数上实现的 MinBufferSize 呢?

AudioRecord 构造函数:

audioRecorder = new AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, mBufferSize);

录音方法:

mBufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);

【问题讨论】:

    标签: android android-5.0-lollipop record audiorecord


    【解决方案1】:

    AudioRecordAudioTrack 是两个不同的东西。

    AudioTrack 支持AudioFormat.ENCODING_PCM_FLOAT,因为Lollipop

    AudioRecord 仅支持AudioFormat.ENCODING_PCM_FLOAT,因为Marshmallow

    检查http://developer.android.com/reference/android/media/AudioFormat.html

    【讨论】:

    • 好的,我猜还没有 Lollipop 的浮动录音,ENCODING_PCM_8BIT 怎么样?谢谢您的快速回答
    • 您可以使用其中任何一种 - ENCODING_PCM_8BIT 或 ENCODING_PCM_16BIT
    猜你喜欢
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多