2011-01-17 11 views
14

Pracuję nad aplikacją mobilną dla Maemo/MeeGo, a Maemo używa PulseAudio. Chcę odtwarzać mp3 dla dzwoniącego (i anulować mikrofon podczas robienia tego, a nie słuchać rozmówcy, wszystko powinno być zrobione w tle), aby to zrobić, muszę przekierować wyjście audio z pewnej (jeśli nie jest to możliwe, wszystko), sfałszuj go jako plik wejściowy i utwórz aplikację Telefon.Jak przekierować z wyjścia audio na wejście mikrofonowe za pomocą PulseAudio?

Na moim komputerze Ubuntu zrobiłem to z pavucontrol. I stworzył zlew NULL, wówczas:

Audio Output (from Amarok) --> to NULL Output 
Skype Input <-- NULL Output 
Skype Output --> NULL 

i to działało, Amarok grał muzykę i było strumieniowych do Skype, bez grania go do mnie, a ja nie wie nic na temat całego procesu usłyszeć. Rzecz w tym; a) Maemo nie ma funkcji pavucontrol. b) Nawet jeśli to zrobi (lub jeśli go zapakuję) To nie będzie nic dobrego, ponieważ jest to aplikacja tylko GUI i muszę zrobić to wszystko w tle, bez żadnego wkładu użytkownika. (średnia: CLI lub API)

Zapytany o to na Freenode #pulseaudio i pomocny facet powiedział: "Można to zrobić za pomocą pactl lub pacmd, wymagane polecenia to move-sink-input i move-source- wyjście, ale musisz znać indeksy urządzeń i strumieni. " Wygląda więc na to, że pavucontrol to tylko GUI, pactl i pacmd to prawdziwa okazja, a co najważniejsze, to aplikacje CLI.

Jestem mu naprawdę wdzięczny, ale nie wiem nic o "pactl", "pacmd", "move-sink-input" ani "indeksach urządzeń/streamów", więc potrzebuję bardzo uproszczonej strony podręcznika, lub źródło podobnej aplikacji, polecenie jedno-liniowe (dwie? cała strona poleceń ?, po prostu daj mi je! ^^) lub kogoś z dostateczną cierpliwością, aby mi to wyjaśnić.

Odpowiedz

1

Instrukcje dla pactl i pacmd są łatwo dostępne, jeśli przeszukasz. Znalazłem je tutaj:

pactl

pacmd (pulse-cli-syntax)

myślę, że jesteś zainteresowany w poniższym fragmencie z podręcznika pactl:

move-zlew-input ID umywalką: przesunąć określony strumień odtwarzania (określony przez jego indeks numeryczny) do określonego zlewu (identyfikowany przez jego symboliczną nazwę lub indeks numeryczny).

Powinieneś być w stanie wykorzystać pactl list sink-inputs, pactl list source-outputs, pactl list sinks i pactl list sources połączeniu z pewnym grep i/lub sed lub czegoś w tym rodzaju programowo określić prawidłowy strumień oraz umywalkę.

+0

ha! gdzie byłeś sześć lat temu? dzięki! :) –

+0

Lepiej późno niż wcale? :) – izzy

Powiązane problemy