Как перенаправить аудиовыход на микрофонный вход с помощью PulseAudio? - PullRequest
14 голосов
/ 18 января 2011

Я работаю над мобильным приложением для Maemo / MeeGo, а Maemo использует PulseAudio.Я хочу воспроизвести mp3 для звонящего (и отключить микрофон при этом, а не слушать звонящего, все должно быть сделано в фоновом режиме), для этого мне нужно перенаправить аудиовыход с определенного (если это невозможно, все) приложение, подделайте его как вход и заставьте приложение телефона использовать его.

На моем компьютере с Ubuntu я сделал это с помощью pavucontrol.Я создал приемник NULL, затем:

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

И это сработало, Amarok проиграл музыку, и она транслировалась в Skype, не воспроизводя ее мне, и я ничего не слышал обо всем процессе.Проблема есть;а) У Maemo нет pavucontrol.б) Даже если бы это было (или если я его упакую), это было бы бесполезно, поскольку это приложение только с графическим интерфейсом, и я должен делать все это в фоновом режиме, без какого-либо участия пользователя.(имеется в виду: CLI или API)

Об этом спросили на Freenode #pulseaudio, и один из полезных парней сказал: «Это можно сделать с помощью pactl или pacmd, команды, которые вам нужны, это move-sink-input и move-исходный-выход, но вам нужно знать индексы устройств и потоков. "Похоже, что pavucontrol - это просто графический интерфейс, pactl и pacmd - реальная сделка, и, самое главное, это приложения CLI.

Я ему очень благодарен, но ничего не знаю об этом »pactl "," pacmd "," move-раковина-ввод "или" индексы устройства / потока ", поэтому мне нужна очень упрощенная страница руководства или источник аналогичного приложения, команда с одной строкой (две? целые страницы команд?, просто дай мне их! ^^) или кто-то, у кого хватит терпения объяснить мне это.

1 Ответ

2 голосов
/ 14 июля 2017

Руководства для pactl и pacmd легко доступны, если вы выполните поиск.Я нашел их здесь:

pactl

pacmd (pulse-cli-syntax)

Я думаю, что вы заинтересованы вследующий отрывок из руководства pactl:

идентификатор входа-перемещения-приемника SINK: перемещение указанного потока воспроизведения (идентифицируемого его числовым индексом) в указанный приемник (идентифицируемый его символическим именем иличисловой индекс).

Вы должны иметь возможность использовать pactl list sink-inputs, pactl list source-outputs, pactl list sinks и pactl list sources в сочетании с некоторыми grep и / или sed или чем-то вродеэта природа, чтобы программно определить правильный поток и приемник.

...