2013-08-06 21 views
8

私はこの質問のように、同様の問題を持っているのJavaFXJavaFXのオーディオ出力選択

で出力デバイスを指定する方法を探しています:JavaFX specific Audio Outputを、異なるニーズを持ちます。

私は可能なすべてのオーディオ出力デバイス(ユーザーの設定に表示されているようなもの)のリストを取得して、ユーザーにオーディオをJavaFXから出すかを選択できるようにします。これは、あらゆる音楽/メディアAPIに含まれるはずの本当に基本的な機能のようであり、ほとんどのオーディオソフトウェアには不可欠です。

私はJavaFxでMediaPlayerを使用していますが、別のクラスがある場合はそれを使用しても構いません。ただし、ビデオには同じ機能が必要です(オーディオ出力を指定する必要があります)ので、両方のために機能するクラス/ソリューションが必要です。

JavaFx 8に役立つものがあれば、いつでもリリースされるまで待つことができます。私は本当にすることが期待何

Screensクラスと同じものだった:私はハックソリューションで大丈夫だよ

Screen.getScreens() // Gets an observable list of all screens. 

。本当に、何か動作します。

+0

を探索することができますが、 'オーディオを一覧表示する)' javax.sound.sampled.AudioSystem.getMixerInfo(見てきましたシステム? – assylias

+0

@assylias私は、ビデオで実装するのが非常に複雑なので、Javaサウンドを使用しないことを望んでいます –

+2

回答が得られない場合は、JavaFXメーリングリストリストを作成したり、新しいJiraの問題を作成することができます。 – assylias

答えて

1

何年もの間、OS XのためのJava実装の非常に不幸な制限がありました。そのプラットフォームでは特にBTWであり、プログラムで利用できる出力オーディオラインは「Java Sound Audio Engine」だけです。その結果、この行に送信したもの、つまりあなたが作成するJavaアプリケーションから送信されたものは、常にOS Xのデフォルト出力(通常は内蔵スピーカー)に設定されているものにルーティングされます。したがって、JSAEは「デフォルトのオーディオ出力」のJava用語です。私たちの理解には - 悲しげに - これは最新のリリースでもそうです。

なぜ幸いですか?これは謙虚なオーディオルーティングを効果的に無効にするためです。私たちは日常的にこれらの問題に取り組んでおり、あらゆる種類の複雑さが増しています。回避策はありますが、SoundFlowerとHiJack Proのようなサードパーティのアプリケーションを経由してください。たとえばwww.soundPimp.com。 assyliasとして

+0

これらの回避策の実装方法に関するチュートリアルなどはありますか? –

1

はgetmixerinfo方法を指摘しているあなたに

 Info[] mixerInfo = AudioSystem.getMixerInfo(); 

    for(int i = 0; i < mixerInfo.length; i++) 
    { 
     System.out.println(mixerInfo[i].getName()); 
    } 

を助けることができるあなたは、さらに詳細here

+0

JavaFxでうまくプレイする方法はありますか? –

関連する問題