2011-01-17 36 views
14

Sto lavorando a un'applicazione mobile per Maemo/MeeGo e Maemo utilizza PulseAudio. Voglio suonare un mp3 al chiamante (e cancellare il microfono quando lo fai, e non ascoltare il chiamante, tutto dovrebbe essere fatto sullo sfondo), per fare questo, devo reindirizzare l'uscita audio da un certo (se non possibile, tutto), falla come input e fai in modo che l'app del telefono lo usi.Come reindirizzare da Uscita audio a Ingresso microfono usando PulseAudio?

Sul mio PC Ubuntu, l'ho fatto con Pavucontrol. Ho creato un lavandino NULL, allora:

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

e ha funzionato, Amarok suonato la musica ed era streaming per Skype, senza giocare a me e non ho sentito nulla di tutto il processo. Il problema è; a) Maemo non ha pavotontrollo. b) Anche se lo facesse (o se lo impacchettassi) non sarebbe un granché dato che è un'app solo GUI e devo fare tutto questo sullo sfondo, senza alcun input da parte dell'utente. (medio: CLI o API)

Alla domanda su Freenode #pulseaudio e un utile ragazzo ha detto "Può essere fatto praticamente tramite pactl o pacmd, i comandi che vuoi sono muovere-sink-input e move-source- output, ma è necessario conoscere gli indici del dispositivo e dello stream. " Quindi sembra che Pavucontrol sia solo una GUI, pactl e pacmd sono il vero affare e, soprattutto, sono app CLI.

Sono molto grato a lui ma non so nulla di "pactl", "pacmd", "move-sink-input" o "device/stream indexes" quindi ho bisogno di una pagina di manuale molto semplificata, o una fonte di app simile, un comando one-liner (due? tutta la pagina di comandi ?, solo dammeli! ^^) o qualcuno con abbastanza pazienza per spiegare questa roba a me.

risposta

1

I manuali per pactl e pacmd sono prontamente disponibili se si effettua una ricerca. Qui li trovai:

pactl

pacmd (pulse-cli-syntax)

Penso che tu sia interessato al seguente estratto dal pactl manuale:

mossa-sink-input ID SINK: Spostare il flusso di riproduzione specificato (identificato dal suo indice numerico) al sink specificato (identificato dal suo nome simbolico o indice numerico).

si dovrebbe essere in grado di utilizzare pactl list sink-inputs, pactl list source-outputs, pactl list sinks, e pactl list sources combinato con un po 'grep e/o sed o qualcosa del genere per determinare a livello di codice il flusso corretto e lavandino.

+0

ha! dove eri sei anni fa? Grazie! :) –

+0

Meglio tardi che mai? :) – izzy

Problemi correlati