문제

다음 코드와 함께 .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 헤더를 제거하는 간단한 방법이 있습니까?

도움이 되었습니까?

해결책

다른 팁

AudioInputStream read () 메소드의 데이터는 이미 원시 WAV 데이터입니다. 따라서 .wav 헤더에 대해 걱정할 필요가 없습니다. 헤더 물건에 액세스하려면이 오디오 인 푸트 스트림과 관련된 Audioformat 객체를 사용합니다.

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

BTW, .wav 파일이 실제로 작지 않으면 샘플을 사용한 것처럼 단일 읽기로 모든 것을 얻을 수는 없습니다. 위의 인용 튜토리얼의 첫 번째 코드 스 니펫에서와 같이 읽기를 while 루프에 넣어야합니다.

.wav 헤더의 길이가 44 바이트 인 경우 처음 44를 건너 뛰거나 제거하면 거기에 있습니다.

그래도 모르겠습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top