2013-08-06 15 views
8

Szukam sposobu, aby określić urządzenie wyjściowe z JavaFXWybór wyjścia audio JavaFX

mam podobny problem jak to pytanie: JavaFX specific Audio Output, ale z różnych potrzeb.

Potrzebuję sposobu, aby uzyskać listę wszystkich możliwych urządzeń wyjściowych audio (jak ten, który widzisz w preferencjach użytkownika) i pozwolić użytkownikowi wybrać, z którego mają wyjść audio w JavaFx. Wydaje się, że jest to naprawdę podstawowa funkcja, która powinna znajdować się w każdym interfejsie muzycznym/multimedialnym API i jest niezbędna w przypadku większości oprogramowania audio.

Używam MediaPlayer w JavaFx, ale jeśli jest inna klasa, z przyjemnością go używam. Zauważ jednak, że potrzebuję tej samej funkcjonalności dla wideo (określając wyjście audio), więc potrzebuję klasy/rozwiązania, która działa dla obu.

Jeśli jest coś w JavaFx 8, które pomoże, zawsze mogę poczekać, aż zostanie zwolniony.

Co ja naprawdę nie oczekuje się było tak samo jak klasa Screens:

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

jestem zadowolony z hackish rozwiązań. Naprawdę, wszystko, co działa.

+0

Pan spojrzał na 'javax.sound.sampled.AudioSystem.getMixerInfo()' do listy dźwięku systemy? – assylias

+0

@assylias Mam nadzieję, że nie będę musiał używać dźwięku Java, ponieważ byłoby to bardzo skomplikowane w implementacji z wideo –

+2

Jeśli nie otrzymasz żadnych odpowiedzi, sposobem na uzyskanie odpowiedzi jest zapytanie na jednym z mailingu JavaFX list lub utworzyć nowy problem Jira. – assylias

Odpowiedz

1

Przez lata było bardzo niefortunnym ograniczeniem implementacji Java dla OS X, będąc BTW szczególnie dla tej platformy, że "Java Sound Audio Engine" jest jedyną dostępną programowo wyjściową linią audio. W związku z tym, niezależnie od tego, co wyślesz do tej linii, tj. Z dowolnej aplikacji Java, którą utworzysz, zawsze będzie kierowane do tego, co zostało ustawione jako domyślne wyjście w systemie OS X, zazwyczaj w wewnętrznych głośnikach. Tak więc JSAE jest po prostu terminologią Java dla "domyślnego wyjścia audio". Do naszego zrozumienia - niestety - tak jest w przypadku najnowszego wydania.

Dlaczego niefortunne? Ponieważ skutecznie wyłącza nawet skromne ścieżki audio. Pracujemy nad tymi sprawami na co dzień i wymaga to wszelkiego rodzaju dodatkowej złożoności. Istnieją prace dookoła, ale za pośrednictwem aplikacji innych firm, takich jak SoundFlower i HiJack Pro. www.soundPimp.com na przykład.

+0

Czy jest jakiś samouczek lub cokolwiek o tym, jak wdrożyć jedną z tych prac dookoła? –

1

Jak assylias wskazał metoda getmixerinfo może pomóc

 Info[] mixerInfo = AudioSystem.getMixerInfo(); 

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

Można badać dalsze szczegóły here

+0

Czy jest jakiś sposób na to, aby grać ładnie z JavaFx? –

Powiązane problemy