KDE 5 - 如何轻松切换音频输出?

我目前安装了KDE 5 Plasma,我非常喜欢它。
然而,无法像在Unity中那样轻松地在一个声卡(SPDIF和模拟)之间切换音频输出。
有没有办法在不进入这个菜单的情况下实现这一点?

enter image description here

我需要每个设置一个

  1. 数字立体声 + 模拟立体声输入
  2. 模拟音频立体声 + 模拟立体声输入

我想在这里更改它们:

enter image description here

可以吗?

1你能试试这个答案吗?它适用于KDE4。点击此处 - user.dz
看起来这个用户界面方面目前正在重新设计。有一篇博文描述了问题,提出了解决方案,并请求反馈。请在此处查看:http://davidrosca.blogspot.ca/2016/04/audio-volume-improvements-in-plasma-57.html - Michael
终于我找到了一个好的解决方案,请查看我的回答,并记得接受它。 - Postadelmaga
4个回答

感谢this answer,我终于找到了解决办法,请看下面的说明。 始终显示HDMI输出 我们将创建一个新的配置文件,将"模拟音频"和"HDMI音频"两个配置文件链接起来。
据我了解,这个文件/usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf列出了Alsa和Pulseaudio之间的所有映射配置文件。 1.
找到与你的模拟音频配置文件HDMI配置文件相关的映射。 (描述:应该与在音频音量 KDE设置模块中显示的设备配置文件相匹配)
对我来说,以下是相关的配置:
[Mapping analog-stereo]
device-strings = front:%f
channel-map = left,right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
priority = 10

[Mapping hdmi-stereo-extra1]
description = Digital Stereo (HDMI 2)
device-strings = hdmi:%f,1
paths-output = hdmi-output-1
channel-map = left,right
priority = 2
direction = output

2. 根据上述映射定义,我创建了以下新的配置文件,将上述两个配置文件分组:
[Profile output:analog-stereo+output:hdmi-stereo-extra1]
description = All
output-mappings = analog-stereo hdmi-stereo-extra1
input-mappings = analog-stereo

3. 使用以下命令重新启动 PulseAudio:
pulseaudio --kill; sleep 1; pulseaudio --start

4. 去KDE音频设置>音频硬件设置,选择新的配置文件。 2个配置文件在混音器中 现在你应该在混音器中看到两个配置文件,这样你就可以轻松切换了: HDMI现在始终显示在混音器中 我建议使用这个Plasmoid混音器:https://store.kde.org/p/1100894/ (额外步骤)强制启用两个输出
如果你不介意同时使用电脑扬声器和电视输出音频(基本上你不需要切换音频输出)。
你可以选择下面的设置,然后在混音器中会出现一个新条目。

enter image description here


由于KDE 5似乎只是PulseAudio的前端,您可以使用pactl命令直接访问PulseAudio。

您需要进行一些实验,找到适合您的确切设置的正确设置,但我建议参考出色的Arch Linux维基上的Pulse Audio,Pulse Audio ConfigurationExamples

在找到正确的命令后,创建一个小的shell脚本,并在~/.local/share/applications/中为它们创建一个条目(假设KDE 5使用自由桌面规范为应用程序创建启动器,我不太确定,因为我从未使用过KDE)。


我到处搜索了...没有找到...我用Python写了一个脚本,试试吧)
import os
speakers = []
st = 0
au = os.popen("pacmd list-sinks")
audiotm = au.read()
audio = list(audiotm.split())
indices = [i for i, x in enumerate(audio) if x == "name:"]
for num in range(len(indices)):
    speakers.append(audio[indices[num]+1])
for num in range(len(speakers)):
    speakers[num] = speakers[num][1:len(speakers[num])-1]
dir = os.path.abspath(__file__)
dir = dir[:-5]
try: f = open(dir + "lststate.txt","r");st = int(f.read()) ;f.close();
except:f = open(dir + "lststate.txt","w");f.write(str(st)); f.close();
if st == len(speakers): st = 0;
OUT = speakers[st]
st += 1
f = open(dir + "lststate.txt","w");f.write(str(st)); f.close();
z = os.popen("pactl list short sink-inputs")
OUTID = z.read().split()
x = os.popen("pacmd set-default-sink " + OUT)
for num in range(0,len(OUTID),7):
    y = os.popen("pactl move-sink-input " + OUTID[num] + " " + OUT)
exit()

我认为现在有一种更简单的方法来实现这个。

  • 打开“音频音量设置-Plasma”
  • 点击屏幕上的“音频音量”图标
  • 点击右上角的“高级”选项卡
  • 将“配置文件:”更改为“全部”

Audio Volume Settings, Profile:All