Как перенаправить с аудио выходного сигнала на вход микрофона с помощью PulseAudio?

StackOverflow https://stackoverflow.com/questions/4719160

Вопрос

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

На моем компьютере Ubuntu я сделал это с Pavucontrol. Тогда я создал нулевую раковину:

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

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

На вопрос об этом на Freenode #PulseAudio и полезный парень сказал: «Это может быть сделано в значительной степени через PACTL или PACMD, желаемые команды-это перемещение и вводимость движения, но вам нужно знать индексы устройства и потока . " Таким образом, похоже, что Pavucontrol - это просто графический интерфейс, PACTL и PACMD - реальная сделка, и, что самое важное, это приложения CLI.

Я действительно благодарен ему, но я ничего не знаю о «PACTL», «PACMD», «MOVE-SINK-вход» или «Индексах устройства/потока», так что мне нужна очень упрощенная страница ручной работы или источник Подобное приложение, команда с одной линией (две? Целая страница команд?, Просто дайте мне их! ^^) или кто-то с достаточным терпением, чтобы объяснить мне это.

Это было полезно?

Решение

Руководство для 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 Или что -то в этом роде, чтобы программно определить правильный поток и тонуть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top