2013-08-06 39 views
8

我正在尋找一種方式來使用JavaFX了JavaFx音頻輸出選擇

指定輸出設備我有一個類似的問題,因爲這個問題:JavaFX specific Audio Output,但有不同的需求。

我需要一種方法來得到所有可能的音頻輸出設備的列表(如你在你的用戶首選項中看到的),並允許用戶選擇他們想要的音頻JavaFX中走出來的是哪一個。這看起來應該是任何音樂/媒體API中的一項基本功能,並且對於大多數音頻軟件來說都是必不可少的。

我使用JavaFX中的MediaPlayer,但如果有另一個類,我很高興使用它。請注意,雖然我需要視頻(指定音頻輸出)相同的功能,所以我需要一個適用於兩者的類/解決方案。

如果有什麼東西在JavaFX 8,將幫助,我可以隨時等待直到它被釋放。

我真的希望那裏是是同樣的事情Screens類:

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

我很好的hackish的解決方案。真的,任何有效的東西。

+0

你看'javax.sound.sampled.AudioSystem.getMixerInfo()'列出音頻系統? – assylias

+0

@assylias我希望不要使用Java聲音,因爲這將是非常複雜的視頻 –

+2

實施如果您沒有收到任何答案,得到的答案的方法是問關於JavaFX的郵件之一列出或創建新的Jira問題。 – assylias

回答

1

多年來,它一直是Java實現的OS X的一個非常不幸的限制,是特別針對該平臺順便說一句,說:「Java聲音音頻引擎」是唯一可用的編程輸出音頻線。結果,不管你發送給此行,即出從任何Java應用程序,你做,總是會被路由到什麼已經被設置爲在OS X中的默認輸出,通常內置揚聲器。所以JSAE只是用於「默認音頻輸出」的Java術語。根據我們的理解 - 可悲的是 - 最新版本仍然如此。

爲什麼不幸?因爲它甚至可以有效地禁用謙遜的音頻路由。我們每天都在處理這些問題,並要求增加各種複雜性。有解決方法,但通過第三方應用程序SoundFlower和HiJack Pro。例如www.soundPimp.com。

+0

有沒有關於如何實現其中一種解決方法的教程或任何內容? –

1

由於assylias指出getmixerinfo方法可以幫助你

 Info[] mixerInfo = AudioSystem.getMixerInfo(); 

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

您可以探索進一步的細節here

+0

有沒有什麼辦法可以讓JavaFx發揮出色? –