(I 해결책의 희망에 내 앞의 질문이 더 일반적인을 시도하고있다.)JLayer 동기화
나는 JLayer 라이브러리와 sample.mp3 파일을 사용하고 있습니다. 나는 동시에 파일을 재생하고 디코드하고 싶습니다.
그러나 노래의 일부가 디코딩되면 동기화됩니다. 재생하기 전에는 아무 것도 디코딩되지 않으며 반대의 경우도 마찬가지입니다 (물론 합리적인 정도로).
Player p = new Player(InputStream mp3stream);
p.play();
Decoder d = new Decoder();
BitStream bs = new Bitstream(InputStream mp3stream);
SampleBuffer s = (SampleBuffer) d.decodeFrame(bs.readFrame(), bs);
// ... for processing the SampleBuffer but irrelevant for the question
내가 현재 사용 :
InputStream mp3stream = new FileInputStream("sample.mp3");
하지만이 한 번에 전체 노래를 사용 그래서 동기화 할 수없는 나는 여기
노래가 연주하고 정중하게, 디코딩 방법이다. sample.mp3을 두 프로세스에서 조작 할 수있는 조각으로 나누는 방법이 있습니까? 제가 조각이 충분히 작 으면 두 조각을 모두 프로세스로 옮길 수 있습니다. 둘 다 끝날 때까지 기다렸다가 다음 작은 조각을 잡고 작은 조각이 나올 때까지 반복하십시오.
참고 : ByteArrayInputStream을 사용해 보았는데 성공하지 못했습니다. 그러나 사용하는 방법이 잘못되었을 수 있습니다.