10 audio linux kde-4 pulse-audio
在计算机中,我有 2 个声音设备。
当我运行某个程序(比如 Skype)时,我可以(使用“pavucontrol”->“PulseAudio Volume Control”)进行设置,以便此应用程序将使用给定的设备进行播放或录音。
但是 - 只有当它当前正在执行某些操作(播放或录制)时,在播放/录制选项卡中的应用程序才可见。
如何在应用程序开始录制或播放声音之前为每个应用程序设置设备?
小智 11
我不知道是否有任何地方的设置或配置文件,但可以使用环境变量来完成。我的回答基于PulseAudio FAQ 中关于设置录音源的这个条目。我已经尝试过使用输出(PulseAudio 中的接收器)进行此操作,但它应该适用于输入和输出。
第一步是获取要使用的源和接收器的内部名称。为此,您需要使用该pactl list命令。该命令将返回一堆数据,但以下将仅列出源名称:
LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
Run Code Online (Sandbox Code Playgroud)
该列表可能包括常规源和 PulseAudio 的监听源的名称(在我的系统中名称中包含“监听”)。您需要使用要定位的设备的常规源名称。
您可以执行相同的操作来获取接收器名称:
LANG=C pactl list | grep -A2 'Sink #' | grep 'Name: ' | cut -d" " -f2
Run Code Online (Sandbox Code Playgroud)
获得名称后,您可以从终端运行以下内容:
PULSE_SINK=<sink_name> PULSE_SOURCE=<source_name> <command_to_run_skype>
Run Code Online (Sandbox Code Playgroud)
当然,如果您想从菜单中运行它,您可能需要创建一个 shell 脚本并使用它而不是默认命令。这样的事情应该工作:
#!/bin/sh
set PULSE_SINK <sink_name>
set PULSE_SOURCE <source_name>
<command_to_run_skype>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6869 次 |
| 最近记录: |