我正在为Maemo/MeeGo开发移动应用程序,而Maemo使用PulseAudio。我想播放一个mp3给来电者(并取消它的麦克风,而不是监听来电者,所有事情都应该在后台完成),要做到这一点,我必须从某个特定的音频输出(如果不可能,全部)应用程序,将其伪造为输入并让Phone应用程序使用它。
在我的Ubuntu PC上,我是使用pavucontrol完成的。我创建了一个NULL接收器,然后:
Audio Output (from Amarok) --> to NULL Output
Skype Input <-- NULL Output
Skype Output --> NULL
它奏效了,Amarok播放了音乐,然后将其流式传输到Skype,而没有向我播放它,而且我听不到所有过程的信息。问题是;
a)Maemo没有pavucontrol。
b)即使它做到了(或者我打包了它)也不会有什么好处,因为这是一个唯一的GUI应用程序,我必须在后台做所有这些事情,而无需任何用户输入。 (平均:CLI或API)
在Freenode #pulseaudio上被问到这一点时,一个乐于助人的人说:“这几乎可以通过pactl或pacmd完成,您想要的命令是move-sink-input和move-source-output,但是您需要知道设备和流索引。”因此,看来pavucontrol只是一个GUI,而pactl和pacmd才是真正的交易,最重要的是,它们是CLI应用程序。
我真的很感谢他,但是我对“pactl”,“pacmd”,“move-sink-input”或“设备/流索引”一无所知,所以我需要一个非常简化的手册页或类似的应用程序,一个单行命令(两个?整个命令页面?给我!^^),或者有足够的耐心向我解释这些内容的人。
最佳答案
如果您进行搜索,可以轻松获得pactl
和pacmd
的手册。我在这里找到他们:
pactl
pacmd (pulse-cli-syntax)
我认为您对pactl
手册的以下摘录感兴趣:
您应该能够将pactl list sink-inputs
,pactl list source-outputs
,pactl list sinks
和pactl list sources
与一些grep
和/或sed
或类似性质的内容结合使用,以编程方式确定正确的流和接收器。
关于linux - 如何使用PulseAudio从音频输出重定向到麦克风输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4719160/