我正在为 Maemo/MeeGo 开发移动应用程序,而 Maemo 使用 PulseAudio。我想向呼叫者播放 mp3(并在执行此操作时取消麦克风,而不是听呼叫者,一切都应该在后台完成),为此,我必须从某个重定向音频输出(如果不可能,所有) 应用程序,将其伪装为输入并让电话应用程序使用它。
在我的 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”或“设备/流索引”一无所知,所以我需要一个非常简化的手册页,或者一个来源类似的应用程序,单行命令(两个?整页命令?,给我他们!^^)或有足够耐心向我解释这些东西的人。