2012-05-19 2 views
3

SPAD와 JAAD를 사용하여 JavaSound를 통해 m4a 파일을 재생하는데, 정상적으로 작동합니다.다른 공급자가 작동하지 않도록 JAAD가 중지했습니다.

그러나이 방법으로 여러 형식을 지원하고 싶습니다.하지만 다른 형식을 시도 할 때마다 JAAD는이를 처리하려고 시도한 다음 실패합니다 (분명히 AAC ​​만 처리하기 때문 임).

다른 모든 SPI 라이브러리가 서로 잘 동작하므로 JAAD의 버그라고 가정합니다. 해결 될 때까지 해결할 좋은 방법이 있습니까? 아니면 사용할 수있는 Javasound에서 작동하는 다른 AAC 라이브러리가 있습니까?

+0

* "다른 모든 SPI 라이브러리"* JAAD (들어 본 적이없는)가 AAC 용 SPI를 제공한다는 것을 의미합니까? 그렇다면 Jar 파일을 찾아 (다른) 프로젝트의 런타임 클래스 경로에 추가하십시오. –

+0

@AndrewThompson 혼란을 일으켜 죄송합니다. JAAD는 AAC 용 SPI를 제공합니다. 문제가 다른 프로젝트에서 작동하지 않는 문제는 mp3SPI, JFlac 등과 같은 다른 SPI와 함께 작동하도록하는 것입니다. 모든 형식을 "호그 (hogs)"하여 모든 것을 재생하려고 시도하는 것입니다. (그냥 AAC 오디오를 재생하려고하는 것이 아닙니다.) 파일 확장자를 확인하여 해결할 수 있거나 JAAD를 패치 할 수 있습니다. 다른 사람에게 더 좋은 아이디어가 있는지 궁금합니다. – berry120

답변

3

마이클 베리에 의해 만들어진 jaad를 사용하여 해결 방법은이 그것을 berry150의 코드를 찾을 걸 렸어요 때문에 URL

https://code.google.com/p/quelea-projection/source/browse/Quelea/src/org/quelea/sound/AudioTrack.java?spec=svn0352523f49cf20d41d1a7dc098af1db38000cc6d&r=0352523f49cf20d41d1a7dc098af1db38000cc6d

+0

고마워 - 내가 대답으로 여기 게시해야하지만 잊어 버렸어! 나는 Michael Berry이다.) – berry120

+0

Google Code에 대한 링크가 죽었습니다. – metasim

+0

@ Berry120 JAAD를 사용하여 m4a를 재생할 샘플이 있습니까? – taymedee

2

이며, 여기에 솔루션입니다 : 첫째, 당신은에 있습니다 JLayer, MP3SPI 및 Tritonous Share가 JAAD 앞에로드되도록 클래스 패스에 jar를 정렬하십시오.

if (getAudioFormat().equals(".mp3")) { 
    audioStream = AudioSystem.getAudioInputStream(file); // Obtains an audio input stream of the song 
      } 
else if (getAudioFormat().equals(".m4a")){ 
    audioStream = new AACAudioFileReader().getAudioInputStream(file); 
      } 

그래서 어떻게하면 오디오는 MP3의 경우는 JAR 처음로드 된 이후, Javasound에서 getAudioStreamMethod()가 먼저 호출 될 것입니다 : 그런 다음 AudioInputStream를을 얻기 위해, 다음 코드를 사용합니다. 오디오가 .m4a 인 경우 ACCAudioFileReader()의 새 인스턴스가 만들어지고 JAAD 라이브러리의 getAudioInputStream()이 호출됩니다.

+0

안녕하세요, 1 년 반 동안 JAAD를 연구 해 왔습니다 ... 포기하려고했지만 하지만 JAAD는 JLayer, MP3SPI, Tritonous를로드합니까? – taymedee

+0

안녕하세요, 제가 일한 이래 잠깐만 요. 이것에 대한로드 순서는 다음과 같아야합니다 : JLayer, MP3SPI, Tritonous Share 그리고 마지막 하나는 JAAD 여야합니다. 이것은 프로젝트의 classpath에 정렬되어 있습니다. – amb110395