2012-03-29 35 views
1

我已將錄製的音頻原始PCM保存到文件rxrawpcm.pcm,之後我試圖播放PCM文件但無法播放錄製的PCM?我沒有聽到錄製的語音聽力只有嗡嗡聲無法播放錄製的原始PCM文件

配置

AudioRecorder和AudioTrack配置

Stream Type  :STREAM_VOICE_CALL 
Sample Rate  : 8000 
Audio Format :PCM_16BIT 
MODE  :MODE_STREAM 
Channel Config :CHANNEL_CONFIGURATION_MONO 

記錄

byte[] buffer=new byte[1600]; 
int read = audioRecord.read(buffer, 0,buffer.length); 
if(recordAudio){ 
if(out!=null){ 
out.write(buffer); 
} 

玩家身邊

FileInputStream fis=new FileInputStream(rxFile); 
byte[] buffer=new byte[1600]; 

while(fis.read(buffer)!=-1){ 
audioPlayer.write(buffer, 0, buffer.length); 
} 
+0

爲了回放數據,您需要確保採樣率,位深度,通道數量(通常是單聲道/交錯立體聲)和字節序都是一致的。 – 2012-03-29 11:29:25

+0

嗨,你可以再次檢查我的問題 – 2012-03-29 12:16:42

回答

1

您的緩衝區大小可能太小。您應該使用getMinBufferSize方法來確定不會導致緩衝區溢出的最小緩衝區大小。在這個問題Android AudioRecord class - process live mic audio quickly, set up callback function的頂級投票答案演示瞭如何正確設置適當的緩衝區大小的錄音。

+0

其實我能夠播放音頻回來。但只有當從文件播放它給我麻煩。我已經設置緩衝區大小爲8320. – 2012-03-29 12:55:12

+0

它也看起來像你正在寫整個讀取緩衝區,當你應該使用讀取計數只寫入字節數你已閱讀。 'out.write(buffer,0,read);' – 2012-03-29 14:08:17

+0

這是一個簡單的任務,但我dono爲什麼我沒有得到正確的輸出 – 2012-03-29 14:40:31