我正在使用 pavucontrol 对“录音”进行更改。我正在将 Loopback to Null-Output 的源 (??) 从“Internes Audio Analog Stereo”更改为“Internes Audio Analog Stereo 监视器”,请参阅屏幕截图http://picpaste.de/Bildschirmfoto_vom_2013-10-26_11_32_03-z0KwnFDE.png 我现在正在寻找通过命令行执行此操作的可能性。
到目前为止我已经完成了以下工作:
pactl load-module module-null-sink
→ 创建一个新的接收器
pactl load-module module-loopback
→ 创建一个新的接收器输入
pactl load-module module-loopback
→ 创建另一个接收器输入
pacmd move-sink-input 0 1
→ 将接收器输入的接收器更改为 Null-Output;这就像在 pacucontrol 选项卡“播放”中手动更改一样。
只是最后一部分(像屏幕截图中显示的那样进行更改)通过命令行是无法做到的。
我很高兴收到任何建议或意见。谢谢!
答案1
更改 pulseaudio 默认输入源的命令是。通过这个,我们还可以在接收器名称末尾pacmd set-default-source
添加 将输出接收器的监视器定义为源。.monitor
这将为我们提供以下命令:
pacmd set-default-source <name_of_sink>.monitor
我们可能还必须使用 将活动流移动到新源move-sink-input
。
答案2
在我的例子中,我想使用重型失真,但当我切换到 pavucontrol 窗口时,录制就停止了。所以我不得不求助于命令行。
这个命令起了作用:
pacmd move-source-output $(pacmd list-source-outputs | tr '\n' '\r' | perl -pe 's/ *index: ([0-9]+).+?media\.name = "([^\r]+)"\r.+?(?=index:|$)/\2:\1\r/g' | tr '\r' '\n' | awk -F ":" '/AudioCallbackDriver/ {print $2}') null.monitor
(供参考,语法是pacmd move-source-output <source output index> <source name or index>
。)
我在打完电话后编写了脚本,sleep
以便有时间开始录音。
特别感谢 Stack Overflow 上的这个回答:根据属性查找 pulseaudio sink-input 索引,而上述 Takkat 的回答虽然不是一个合适的解决方案,但却为我指明了正确的方向。