linux开pulseaudio服务,PulseAudio

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值