Java에서 오디오 파일 (특히 wav 파일)에서 오디오 스트림을 가져 오는 방법이 있습니까?오디오 파일에서 바이트 스트림을 가져 옵니까?
startTime
에서 endTime
까지 startTime
이 0이 아닌 특정 간격의 스트림을 가져 오려고합니다. 예를 들어 오디오 스트림을 20 초 길이 오디오 파일의 5 초에서 10 초 (5 초 지속 시간)로 가져 오는 것입니다.
어떻게 수행하나요?
Java에서 오디오 파일 (특히 wav 파일)에서 오디오 스트림을 가져 오는 방법이 있습니까?오디오 파일에서 바이트 스트림을 가져 옵니까?
startTime
에서 endTime
까지 startTime
이 0이 아닌 특정 간격의 스트림을 가져 오려고합니다. 예를 들어 오디오 스트림을 20 초 길이 오디오 파일의 5 초에서 10 초 (5 초 지속 시간)로 가져 오는 것입니다.
어떻게 수행하나요?
을 당신은 표준 자바 사운드 라이브러리를 사용하여이 작업을 수행 할 수 있습니다 javax.sound.sampled의.
여기에서 .wav 파일을 읽는 방법과 바이트를 해당 프레임으로 변환하는 방법에 대해서도 다뤘습니다. 오른쪽에있는 "관련"을 확인하면 오디오 데이터를 읽는 방법, 한 번에 하나의 버퍼의 가치 및 해당 버퍼를 반복하고 바이트를 PCM 데이터로 변환하는 방법에 대한 정보를 찾을 수 있습니다.
프레임 속도 (예 : 44100fps)를 알고 있다고 가정하면 오디오 데이터의 바이트 또는 프레임 수를 계산할 문제가됩니다. 예를 들어 스테레오에서 44100fps의 16 비트 인코딩에서 각 프레임은 4 바이트로 구성되므로 바이트 (5 * 4 * 44100)는 5 초 지점의 시작이되고 (10 * 4 * 44100)은 10 초 지점.
자바 사운드 튜토리얼은 읽기가 어렵습니다. 다음 링크는 "사운드 파일 읽기"헤더 아래에 매우 유용한 코드 예제가 있습니다. http://docs.oracle.com/javase/tutorial/sound/converters.html
"... audioBytes 배열에 현재의 오디오 데이터를 유용한 일을 할, 여기 //" 를 읽고 주석 행있다 당신의 바이트를 계산하고, 조립 것이 어디
바이트로부터의 PCM 데이터.
이 사람은 당신을 도움이 될 것입니다
자바 WAV 파일 IO http://www.labbookpages.co.uk/audio/javaWavFiles.html