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