除了扬声器和普通麦克风之外,我还有一套不错的无线耳机,我不时使用。
我想编写一个脚本来在一个输入和输出源和另一个之间切换,本质上是在我的耳机和我的扬声器+麦克风之间切换。
我想在这之间改变:

...和这个:

有没有办法让我编写两个输入和输出之间的传输脚本?基本上我正在寻找这样的东西:
CURRENT_INPUT="$(get-current-input-name)"
CURRENT_OUTPUT="$(get-current-output-name)"
if [ "$CURRENT_INPUT" == "Vengeance 2000" ]; then
set-current-input "HD Pro Webcam C920"
else
set-current-input "Vengeance 2000"
fi
if ["$CURRENT_OUTPUT" == "Vengeance 2000" ]; then
set-current-output "Built-in Audio"
else
set-current-output "Vengeance 2000"
fi
Run Code Online (Sandbox Code Playgroud)
有没有办法编写这个脚本?
我将笔记本电脑与带扬声器的外接显示器一起使用。当显示器通过 HDMI 连接时,我可以在普通笔记本电脑音频输出和显示器输出之间切换(使用 GUI:声音设置 --> 硬件)。
我重复这个过程很多次,我开始怀疑我是否可以自动化它,或者无论如何,使用 shell 以更快的方式执行它。
我的发行版是带有 gnome 3 的 Ubuntu 12.04。
编辑:
我尝试使用 pacmd,但 list-sinks 只给了我当前使用的设备:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.hdmi-stereo>
Run Code Online (Sandbox Code Playgroud)
从 GUI 切换后:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
Run Code Online (Sandbox Code Playgroud)
如果我尝试改变它,我会得到:
pacmd set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
Welcome to PulseAudio! Use "help" for usage information.
Sink alsa_output.pci-0000_00_1b.0.hdmi-stereo does not exist.
Run Code Online (Sandbox Code Playgroud) 我正在通过 HDMI 将音频传输到我的接收器,该接收器连接了完整的 7.1 设置。然而,我听的大多数东西的声道要少得多——有些是单声道,大多数是立体声,还有一点是 5.1。当接收器输入正确数量的通道时,它具有各种 DSP 效果,效果相当好(例如,分离出一个中央通道、将基座发送到低音炮、自动检测杜比矩阵环绕声等)。如果您使用一堆静音频道向它发送完整的 7.1 信号,这将停止工作。
PulseAudio 中的输出通道数量由分配给卡的配置文件配置,每个卡/接收器。您可以更改与分配的配置文件pacmd,pactl以及各种GUI程序。
如何将其设置为根据输入流中的通道使用情况自动更改配置文件?例如,如果输入流仅使用左前和右前,则切换到立体声配置文件。如果他们同时使用左后和右后,请切换到四声道等。
我想读出我可以设置的音量级别
pactl set-sink-volume $SINK $VOLUME
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来做到这一点?像假设一样简单
pactl get-sink-volume $SINK
Run Code Online (Sandbox Code Playgroud)
?
(我想做什么?我使用 pactl 来设置音量,它让我将音量设置为高于 100%,这是一个坏主意(音质下降),所以我正在考虑编写一个小脚本不要超过 100%。读出它。超过某个阈值?设置为 100%。低于?加 1%。如果有另一种方法可以做到这一点,太好了,告诉我!最干净的解决方案可能会告诉脉冲停止100%。但最初的问题仍然存在,一定有办法..)
如果这有什么不同,我在 Debian 上。
截至 2021 年初,似乎正在进行在 pactl 中实现此功能的工作。感谢 Klaas van Schelven 指出这一点。
我看到一堆声称 Jack 比 Pulse 更快并且延迟更短的说法。怎么会这样?为什么 Pulse 称自己为轻量级,而 Jack 的人称其为胖子?谁能将这两个守护进程的内部结构分解给外行?
我用一个 USB 耳机在两台电脑上工作。我想通过将非 Linux 计算机的输出通过管道连接到 Linux 计算机的线路输入(蓝色音频插孔)并使用 PulseAudio 将信号混合到 Linux 计算机的耳机输出来收听两者。
pavucontrol 显示了一个“内置音频模拟立体声”输入设备,它允许我选择“线路输入”(选定)、“前置麦克风”、“后置麦克风”等端口。我可以看到设备的音量计对非 Linux 机器上的音频播放做出反应。
如何让 PulseAudio 将该音频信号播放到我选择的输出设备中?
PulseAudio 始终在我的系统上运行,如果它崩溃或我杀死它,它总是会立即重新启动。但是,我从未真正启动过PulseAudio。
我已经检查过/etc/init.d/并且/etc/X11/Xsession.d/我已经检查过systemctl list-units -aPulseAudio 无处可寻。
为什么 PulseAudio 似乎神奇地自行启动而我从未运行过它,它如何在它死后立即重新启动?
我正在使用带有 xinit 和 i3 窗口管理器的 Debian 8 (jessie) 和 PulseAudio 5。
为了调试 JACK/Pulseaudio 问题,我想了解 systemd(在 Fedora 上)何时以及为何启动pulseaudio 守护程序。
使用:
$ ps -o'pid,ppid,args' `pgrep pulse`
Run Code Online (Sandbox Code Playgroud)
我看到 systemd 正在启动pulseaudio守护进程(pid=1)
PID PPID COMMAND
2738 1 /usr/bin/pulseaudio --start
Run Code Online (Sandbox Code Playgroud)
但是,我无法在我的系统上找到任何包含pulseaudio或什至仅包含pulse.
我的具体问题是:
A) 有没有办法确定导致创建特定进程的 systemd 单元(在我的示例输出中,进程 2738,PA 守护程序)?
B) 是否有其他方法可以找出 systemd 的哪个单元依赖链或其他设置导致调用/usr/bin/pulseaudio --start?
我使用 TightVNC 和 Remmina 远程桌面通过 VNC 将我的 Raspberry Pi 连接到我的 Ubuntu 笔记本电脑。它在大多数情况下都很好用,除了没有声音的事实。
我到处搜索,通过 VNC 查找转发声音,通过 SSH 隧道通过 VNC 查找声音,通过 PulseAudio Network Transparency 查找声音转发。我找不到怎么做。
有谁知道如何通过 VNC 获得声音?
我正在使用 Gnome Shell 运行 Fedora 24。我尝试通过蓝牙配对我的新 Bose QuietComfort 35。
我开始使用 Gnome 界面。不幸的是,这种联系似乎不成立。它显示为不断连接/断开连接:
我的下一步是使用命令行执行一些检查。首先,我检查了蓝牙服务是否正在运行:
$ sudo systemctl status bluetooth
? bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since dim. 2016-06-26 11:19:24 CEST; 14min ago
Docs: man:bluetoothd(8)
Main PID: 932 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 512)
Memory: 2.1M
CPU: 222ms
CGroup: /system.slice/bluetooth.service
??932 /usr/libexec/bluetooth/bluetoothd
juin 26 11:19:24 leonard systemd[1]: Starting Bluetooth service...
juin 26 11:19:24 leonard bluetoothd[932]: Bluetooth daemon 5.40
juin 26 11:19:24 …Run Code Online (Sandbox Code Playgroud)