2016-11-09 116 views
0

我需要录制音频并使用Android MediaRecorder以amr格式保存文件。
文件信息我得到这样的。Android MediaRecorder:如何设置位深度?

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位,我应该怎么办?
感谢您的第一。

回答

1

我不知道,但似乎你不能在MediaRecorder.AudioEncoder.AMR_NB因为

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

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