2012-03-29 4 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

데이터를 재생하려면 샘플 속도, 비트 심도, 채널 수 (일반적으로 모노/인터리브 스테레오) 및 엔디안 비율이 모두 일치해야합니다. –

+0

안녕하세요, 다시 한번 내 질문을 확인하실 수 있습니다. –

답변

1

버퍼 크기가 너무 작을 수 있습니다. getMinBufferSize 메서드를 사용하여 버퍼 오버플로가 발생하지 않는 최소 버퍼 크기를 결정해야합니다. 이 질문에서 가장 많이 쓴 대답은 Android AudioRecord class - process live mic audio quickly, set up callback function입니다. 적절한 버퍼 크기로 오디오 녹음을 올바르게 설정하는 방법을 보여줍니다.

+0

사실 저는 오디오 루프를 재생할 수 있습니다. 하지만 파일을 재생할 때만 문제가 생깁니다. 나는 버퍼 크기를 8320으로 설정했습니다. –

+0

또한 읽기 횟수를 사용하여 바이트 수만 쓸 때 전체 읽기 버퍼를 작성하는 것처럼 보입니다. 당신은 읽었습니다. 'out.write (buffer, 0, read); ' –

+0

이것은 간단한 작업이지만 왜 나는 올바른 출력을 얻지 못하고 있습니까? –

관련 문제