2011-08-12 2 views
0

私はサーバーの入力からサウンドを記録するJava EEアプリケーションを作成しようとしています。私はTomcatのユーザーを追加しようとしました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) 

:デバッグの、およびサーバー上で実行されているとき、それは、ウェブサーバから実行しているとき、自分自身(の両方Ubuntuは)しかし、私は例外を取得として 私のコードは正常に動作しますオーディオグルー​​プ(いくつかのドキュメントが示唆しています)が、まだ例外をスローしています。唯一の違いは環境でなければならないと私は思うが、私は問題がどこにあるのかが間違っている。

答えて

0

私はこれを今すぐ稼働させることができましたが、助けてくれてありがとうございます。

最終的には、ubuntuではOSレベルの問題でしたが、オーディオグルー​​プのユーザだけがログインしていないとき(https://wiki.ubuntu.com/Audio/TheAudioGroup)サウンドリソースにアクセスして、脈拍に接続することができますあなたがX11の認証を必要としているように見えます。これらの変更の後、再起動が必要になりますので、tomcatは他の操作が行われる前にサウンドデバイスをつかむことができます。

0

アプリケーションWEB-INF/libまたはTomcat/libのCLASSPATHに適切なJARがあると仮定します。

何かを開こうとしているということは、パスの問題がある可能性があることを示しています。 Webアプリケーションは、WARファイルをどこにインストールするかを知ることができないため、絶対ファイルパスに依存することはできません。したがって、相対パスを使用し、リソースをストリームとして取得する方がよいでしょう。おそらく、このライブラリでそれを行う方法があります。

+0

例外はそれを言っていない...私はあなたがひどいパッケージ名に惑わされていると思う。 – BalusC

+0

名前は大したものではありません。この場合、「open」はJavaSound API内のDatelineを参照しています。私はライブラリがそこにあることを確信しています(少なくともjarファイル)、またはこれはこれを得ることはできません。 –

関連する問題