2016-11-09 120 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位)更改它。