Yek*_*ici 14 linux audio command-line-interface maemo pulseaudio
我正在为Maemo/MeeGo开发移动应用程序,Maemo使用PulseAudio.我想播放一个mp3给来电者(并且在做这个时取消麦克风,而不是听来电者,一切都应该在后台完成),要做到这一点,我必须重定向一定的音频输出(如果不可能,全部)应用程序,将其伪造为输入并使手机应用程序使用它.
在我的Ubuntu PC上,我用pavucontrol做到了.我创建了一个NULL接收器,然后:
Audio Output (from Amarok) --> to NULL Output
Skype Input <-- NULL Output
Skype Output --> NULL
Run Code Online (Sandbox Code Playgroud)
它起作用了,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"或"device/stream indices"一无所知,所以我需要一个非常简化的手册页,或者类似的应用程序,一个单行命令(两个?整个命令页?,只是给我们他们!^^)或有足够耐心的人向我解释这些东西.
如果您进行搜索pactl,pacmd则可以轻松获得和的手册。我在这里找到了它们:
我认为您对pactl手册中的以下摘录感兴趣:
move-sink-input ID SINK :将指定的播放流(由其数字索引标识)移动到指定的接收器(由其符号名称或数字索引标识)。
您应该能够使用pactl list sink-inputs, pactl list source-outputs, pactl list sinks, 并pactl list sources结合某些grep和/sed或某种性质的东西以编程方式确定正确的流和接收器。