2013-11-25 1 views
-1

내 코드 34 번에서 LineUnavailableException이 계속 발생합니다. https://www.refheap.com/21223왜이 LineUnavailableException이 발생합니까?

오류는 javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.으로 읽습니다.

Sound 클래스의 여러 인스턴스를 만들고 있습니다 (내 Refheap 붙여 넣기에 구현 됨). 첫 번째 인스턴스에는 문제가없는 것 같습니다. 그러나 같은 오디오 파일을 사용하여 Sound 객체의 새 인스턴스를 만들기 시작하면이 오류가 발생하기 시작합니다.

어떻게 고칠 수 있습니까?

EIDT : ByteArrayInputStream 아이디어가 this question일지도 모르지만 나는 아직 어떻게해야할지 모르겠다.

EDIT : 동일한 사운드를 동시에 재생하는 방법에 대해서는 this forum thread의 해결책을 찾았지만 내 코드를 변경 한 후에도 여전히 동일한 문제가 발생합니다. 여기에 내 업데이트 된 코드가 있지만 오류는 88 행에서 발생합니다. https://www.refheap.com/21224

+0

형식이 상당히 표준적인 것처럼 보이지만 특정 형식의 PCM을 처리하는 방법을 알지 못하는 것 같습니다. –

+0

그래, 그 말은하지만, 처음 엔 효과가있다. 그런 다음 너무 많은 Sound 객체를 만들면 그 문제가 발생하기 시작한다. – trusktr

답변

-1

문제의 해결책을 찾았습니다 : the Beads audio library for Java. 간단하게 놀랍습니다.

+0

물론 광고를하고 있습니다 – gpasch

+0

@gpasch 저는 그 라이브러리의 저자는 아니지만, 네이티브 Java에 비해 직관적이고 사용하기 쉬운 API를 제공함으로써 모든 것을 더 쉽게 만들었습니다. – trusktr

0

동시에 여러 데이터 행을 열려고하면 예외가 발생합니다. 두 번째 라인은 첫 번째 데이터 라인이 열리는 것을 차단합니다.