2009-09-17 7 views
3

다음 코드로 .wav 파일을 바이트 배열로 읽습니다.Java - .wav에서 헤더 제거

AudioInputStream inputStream = 
    AudioSystem.getAudioInputStream(/*my .wav file */); 
int numBytes = inputStream.available(); 
byte[] buffer = new byte[numBytes]; 
inputStream.read(buffer, 0, numBytes); 
inputStream.close(); 

바이트 배열을 읽는 전후에 .wav 헤더를 제거하는 간단한 방법이 있습니까?

답변

0

wav 파일 헤더가 고정 크기입니까? 그렇다면 inputStream.skip?

2

.wav 헤더의 길이가 44 바이트 인 경우 처음 44 개를 건너 뛰고 제거하십시오.

물론 모르겠다.

3

AudioInputStream read() 메서드의 데이터는 이미 원시 WAV 데이터입니다. 따라서 .wav 헤더에 대해 걱정할 필요가 없습니다. 헤더 내용에 액세스하려면이 AudioInputStream과 연결된 AudioFormat 객체를 사용합니다. 당신의 .wav 파일이 정말 작은하지 않는 한 당신이 당신의 샘플을했던 것처럼

http://download.oracle.com/javase/tutorial/sound/converters.html

BTW, 당신은 하나의 읽기와 모든을받지 않습니다. 위의 인용 된 자습서의 첫 번째 코드 스 니펫 에서처럼 while 루프에서 읽어야합니다.

+0

+1이 스레드에서 유일한 정답을 추가하고 읽기 문제를 발견하는 데 사용합니다. –