Come reindirizzare da uscita audio al Mic Input utilizzando PulseAudio?
-
12-10-2019 - |
Domanda
Sto lavorando su un app mobile per Maemo / MeeGo e Maemo utilizza PulseAudio. Voglio giocare un mp3 al chiamante (e annullare il microfono quando farlo, e non ascoltare chiamante, tutto dovrebbe essere fatto su sfondo), per fare questo, devo reindirizzare uscita audio da un certo (se non è possibile, tutto ) app, falso come un ingresso e fare uso del telefono app esso.
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 e 'stato lo streaming a Skype, senza giocare a me e non ho sentito nulla di tutto il processo. Il problema è; a) Maemo non ha pavucontrol. b) anche se lo facesse (o se imballaggio è necessario) Non sarebbe nulla di buono dal momento che è un'applicazione solo-GUI e devo fare tutto questo roba sullo sfondo, senza alcun input da parte dell'utente. (Media: CLI o API)
Alla domanda su questo su Freenode #pulseaudio e un ragazzo utile ha dichiarato: "Si può praticamente essere fatto tramite PACTL o pacmd, i comandi desiderati sono mossa-sink-input e di origine dello spostamento-output, ma è necessario sapere dispositivo e gli indici di flusso." Quindi sembra che pavucontrol è solo una GUI, PACTL e pacmd sono il vero affare, e, soprattutto, sono le applicazioni CLI.
Sono molto grato a lui, ma non so nulla "PACTL", "pacmd", "Move-sink-input" o "indici dispositivo / stream" quindi ho bisogno di una pagina di manuale molto semplificata, o una fonte di applicazione simile, un comando one-liner (due? intera pagina di comandi ?, dammi solo loro! ^^) o qualcuno con abbastanza pazienza per spiegare queste cose a me.
Soluzione
I manuali per pactl
e pacmd
sono prontamente disponibili se si dà una ricerca. Li ho trovati qui:
Penso che tu sia interessato al seguente estratto dal manuale pactl
:
move-sink-input ID SINK: Spostare il flusso di riproduzione specificato (identificato dal suo indice numerico) al lavandino specificato (identificato con il 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 a livello di codice determinare il flusso corretto e lavandino.