2012-03-29 5 views
1

録音されたオーディオ未加工PCMをファイルrxrawpcm.pcmに保存しました。その後、pcmファイルを再生しようとしましたが、記録されたPCMを再生できませんでしたか?私は録音された音声、聴覚にのみbuzzy音を聞いていなかったファイルから未記録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

データを再生するには、サンプルレート、ビット深度、チャンネル数(通常はモノラル/インターリーブドステレオ)、エンディアンが一貫していることを確認する必要があります。 –

+0

こんにちは私の質問をもう一度確認することができます –

答えて

1

バッファサイズが小さすぎる可能性があります。 getMinBufferSizeメソッドを使用して、バッファオーバーフローを引き起こさない最小のバッファサイズを決定することになっています。この質問の回答の一番上にあるAndroid AudioRecord class - process live mic audio quickly, set up callback functionは、適切なバッファサイズで音声録音を正しく設定する方法を示しています。

+0

実際に私はオーディオループバックを再生することができます。しかし、ファイルから再生する場合にのみ問題が発生します。私は8320にバッファサイズを設定しました。 –

+0

また、バイト数だけを書き込むために読み込み回数を使用する必要がある場合は、読み込みバッファ全体を書き込んでいるようですあなたは読んだ。 'out.write(buffer、0、read);' –

+0

これは簡単な作業ですが、なぜ私は正しい出力を得られないのですか? –

関連する問題