当前位置: 首页 > 工具软件 > PulseAudio > 使用案例 >

linux开pulseaudio服务,PulseAudio

艾成益
2023-12-01

1 蓝牙耳机不出声

有时候,蓝牙耳机成功连接之后,播放音乐时仍然是扬声器在出声。在

KDE 系统设置里选择播放设备,只能看到

PulseAudio,不能列出具体的音频设备(内部音频或蓝牙耳机),因此也无法指定。这个时候,可以先通过命令行列出当前可用的音频设备:

$ pacmd list-sinks | grep -e 'name:' -e 'index:'

index: 3

name:

* index: 7

name:

然后就可以根据尖括号里的设备名称强制指定音频输出设备了:

$ pacmd set-default-sink bluez_sink.xx_xx_xx_xx_xx_xx.a2dp_sink

2 本地运行 PulseAudio 服务器

有时候我们想让

环境中的应用程序也能够发声。一个简单的办法是,在宿主端启动一个

PulseAudio 服务器,让 chroot 端的 PulseAudio

作为客户端连上来。为了方便宿主端开启和关闭服务,我们在宿主端创建一个脚本,文件名叫

paserver:

#!/bin/sh

usage() {

echo'Usage: paserver '

exit 1

}

case "$1" in

on )

pactl load-module module-native-protocol-tcp \

auth-ip-acl=127.0.0.1 auth-anonymous=1

;;

off )

pactl unload-module module-native-protocol-tcp

;;

* )

usage

;;

esac

在宿主端需要启动声音服务的时候,直接运行

paserver on,用完之后,运行

paserver off 就可以了,不需要每次都杀掉

pulseaudio 重新启动。

在客户端,由于客户端启动之后一定是需要连接服务端的,因此我们不采取类似服务端的动态加载模式,直接写到

PulseAudio 的配置文件里面。在客户端创建

~/.pulse/default.pa,写入以下内容:

load-module module-native-protocol-unix

load-module module-null-sink

load-module module-stream-restore

load-module module-rescue-streams

load-module module-always-sink

load-module module-tunnel-sink-new server=127.0.0.1 sink_name=Pulse channels=2

这样客户端启动 PulseAudio

的时候就会直接连接服务端了。

另外,在正常的桌面环境下,PulseAudio

一段时间不使用之后会退出,需要再使用的时候,客户程序会通过

dbus 来重启它。在 chroot

环境下,滇狐没研究出如何配置自动重启

PulseAudio。因此一个比较偷懒的做法是把空闲时自动退出的功能给禁用掉。创建

~/.pulse/daemon.conf,并写入以下内容就可以了:

exit-idle-time = -1

 类似资料: