Android MediaRecorder:如何设置位深度



我需要使用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);

但是我需要把Bit depth改为16位,我该怎么办呢?

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

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

sampling ratenumber of channels是固定的,而AMR (Adaptive multi - rate)表示可变的Bit rate。所以,我认为你可以看到"平均"位深。您可以通过使用其他编码和媒体格式(例如PCM-16位)来更改它。

相关内容

  • 没有找到相关文章

最新更新