2011-08-12 3 views
0

서버의 입력 사운드를 기록하는 Java EE 응용 프로그램을 작성하려고합니다. 나는에 바람둥이 사용자를 추가하려고했습니다tomcat에서 JavaSounds 사용

javax.sound.sampled.LineUnavailableException 
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openImpl(PulseAudioMixer.java:714) 
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:588) 
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:584) 
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.open(PulseAudioMixer.java:579) 
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:95) 
at org.classpath.icedtea.pulseaudio.PulseAudioTargetDataLine.open(PulseAudioTargetDataLine.java:111) 
at org.classpath.icedtea.pulseaudio.PulseAudioTargetDataLine.open(PulseAudioTargetDataLine.java:130) 

: debuging, 서버에서 실행 때 웹 단절에서 실행중인 경우 자신 (두 우분투) 그러나 나는 예외를 얻을로 내 코드는 잘 작동 오디오 그룹 (일부 문서에서 제안)이지만 여전히 예외가 발생합니다. 유일한 차이점은 환경이어야한다고 생각합니다. 그러나 문제가있는 곳을 잃어 버렸습니다.

답변

0

나는 지금이 작업을 할 수 있었지만 도움을 주셔서 감사합니다.

우분투에서 OS 레벨 문제가 발생했습니다. 오디오 그룹의 사용자 만 로그인하지 않으면 사운드 리소스에 액세스 할 수 있고 (https://wiki.ubuntu.com/Audio/TheAudioGroup) 맥박에 연결할 수 있습니다 당신이 어떤 종류의 X11 인증을 필요로하는 것처럼 보입니다. 변경 후에는 재시작이 필요하므로 tomcat이 다른 장치보다 먼저 사운드 장치를 가져올 수 있습니다.

0

응용 프로그램 WEB-INF/lib 또는 Tomcat/lib의 CLASSPATH에 적절한 JAR가 있다고 가정합니다.

무언가를 열려고한다는 사실은 경로 문제가 있음을 나타냅니다. WAR 파일을 설치할 위치를 알 수 없기 때문에 웹 앱은 절대 파일 경로에 의존 할 수 없습니다. 따라서 상대적 경로를 사용하고 리소스를 스트림으로 가져 오는 것이 좋습니다. 아마도이 라이브러리로 할 수있는 방법이있을 것입니다.

+0

예외는 ... 당신이 끔찍한 패키지 이름에 속아 넘어 졌다고 생각합니다. – BalusC

+0

명명법이 좋지 않습니다.이 경우 'open'은 JavaSound API 내의 Dateline을 나타냅니다. 나는 라이브러리가 (최소한 jar 파일들) 거기에 있다는 것을 확신한다. –

관련 문제