【问题标题】:Android MediaRecorder: How to set bit depth?Android MediaRecorder:如何设置位深度?
【发布时间】:2016-11-09 09:57:52
【问题描述】:

我需要使用 Android MediaRecorder 录制音频并以 amr 格式保存文件。
我得到的文件信息是这样的。

General
Complete name                    : E:\11-09-05-40-29.amr
Format                           : AMR
Format/Info                      : Adaptive Multi-Rate
File size                        : 2.69 KiB
Duration                         : 1s 720ms
Overall bit rate                 : 12.8 Kbps

Audio
Format                           : AMR
Format/Info                      : Adaptive Multi-Rate
Format profile                   : Narrow band
Duration                         : 1s 720ms
Bit rate mode                    : Constant
Bit rate                         : 12.8 Kbps
Channel(s)                       : 1 channel
Sampling rate                    : 8 000 Hz
Bit depth                        : 13 bits
Stream size                      : 2.69 KiB (100%)

这是我的代码

mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);      
mMediaRecorder.setAudioEncodingBitRate(16);
mMediaRecorder.setAudioChannels(1);
mMediaRecorder.setAudioSamplingRate(8000);

但我需要将它的位深度更改为 16 位,我该怎么办?
先谢谢了。

【问题讨论】:

    标签: android android-mediarecorder amr bit-depth


    【解决方案1】:

    我不确定,但似乎你不能在 MediaRecorder.AudioEncoder.AMR_NB 内更改它,因为

    Bit rate = (sampling rate) × (bit depth) × (number of channels)

    其中sampling ratenumber of channels 是固定的,但AMR(自适应多速率)表示变量Bit rate。所以,我认为你可以看到“平均”位深度。您可以使用其他编码和媒体格式(例如 PCM-16 位)进行更改。

    【讨论】:

    • 如果您知道如何以编程方式从视频中获取位深度,请告诉我??
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2013-09-03
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多