Comment rediriger de sortie audio à l'aide d'entrée micro PulseAudio?
-
12-10-2019 - |
Question
Je travaille sur une application mobile pour Maemo / MeeGo et Maemo utilise PulseAudio. Je veux jouer un mp3 à l'appelant (et annuler le micro quand le faire, et de ne pas écouter l'appelant, tout doit être fait sur fond), pour ce faire, je dois rediriger la sortie audio à partir d'un certain (sinon possible, tout ) application, faux comme une entrée et utiliser app téléphone vous.
Sur mon PC Ubuntu, je l'ai fait avec pavucontrol. J'ai créé un évier NULL, alors:
Audio Output (from Amarok) --> to NULL Output
Skype Input <-- NULL Output
Skype Output --> NULL
Il a travaillé, Amarok joué la musique et il a été en streaming à Skype, sans jouer à moi et je n'ai entendu rien de tout processus. Le problème est; a) Maemo n'a pas pavucontrol. b) Même si elle l'a fait (ou si j'emballer) Il ne serait pas bon car il est une seule application GUI et je dois faire tout ce genre de choses sur fond, sans aucune intervention de l'utilisateur. (Moyenne: CLI ou API)
Interrogé à ce sujet sur Freenode #pulseaudio et un gars dit utile « Il peut à peu près se faire via pactl ou pacmd, les commandes que vous voulez sont move-évier entrée et déplacer-source-sortie, mais vous devez savoir dispositif et les indices de flux. » Il semble donc que pavucontrol est juste une interface graphique, pactl et pacmd sont la vraie affaire, et surtout, ils sont des applications CLI.
Je suis vraiment reconnaissant envers lui, mais je ne sais rien à propos de « pactl », « pacmd », « move-évier-entrée » ou « index périphérique / flux » donc je besoin d'une page de manuel très simplifié, ou une source d'application similaire, une commande en une ligne (moi deux? page entière de commandes ?, juste leur donner! ^^) ou quelqu'un avec assez de patience pour expliquer ce genre de choses pour moi.
La solution
Les manuels pour pactl
et pacmd
sont facilement disponibles si vous lui donnez une recherche. Je les ai trouvés ici:
Je pense que vous êtes intéressé par l'extrait suivant du manuel de pactl
:
move-évier entrée ID PUITS: Déplacez le flux de lecture spécifié (identifié par son index numérique) à l'évier spécifié (identifié par son nom symbolique ou index numérique).
Vous devriez pouvoir utiliser pactl list sink-inputs
, pactl list source-outputs
, pactl list sinks
et pactl list sources
combinée à une grep
et / ou sed
ou quelque chose de cette nature pour déterminer le programme flux correct et un évier.