LinuxのOpenJDKでJavaZoomのライブラリを使用してオーディオファイルを再生する際に問題が発生しますが、SunJDKでは完全に機能します。この「マスターゲインがサポートされていません」という例外の回避策はありますか?
モーセン
私は同じことに気づきました。ゲインを変更する前に、SunJavaをチェックするだけです。ひどいですが、明るい面では、OpenJDKのオーディオは私のニーズに対してSunのオーディオよりもはるかに優れています。
編集:他の人がウェブ検索を通してこの答えを見つけるので、私は少し追加するつもりです。OpenJDKのPulseAudioMixerがJSAPIに準拠していないように見える場合があります。たとえば、flush()する前に行をstop()するように要求します。ただし、JSAPIは、停止する前にフラッシュすることが合法であると具体的に述べています。または、あなたが言及した場合、パルスオーディオの実装は、isControlSupportedを呼び出すとゲインをサポートすると主張しますが、とにかく例外をスローします。これらが、JavaZoomコードがOpenJDKで機能しない2つの理由です。他にもあります。場合によっては、PulseAudioMixerが原因ではなく、未定義の場合は別のルートを取るだけです(たとえば、開いていない行でwrite()を呼び出すとどうなりますか?!)。OpenJDKで実行できるように、作成したコードをより堅牢にする作業を行っています。
libbasicplayer-java(3.0-4に適用)に対するパッチがあります。
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=567856
ただし、OpenJDKは、ゲインのサポートに関してまだバグがあります。
そのページ:https ://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/491784/最後にパッチがあり、今はうまくいきます。パッチはtry&catchだけで構成されています。申し訳ありませんが、javazoomの作成者がソースをオンラインで公開している場所が見つかりません。あなたがそれらを必要とするならば、私に連絡してください。