首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止接收错误的脉冲音频故障转移

如何防止接收错误的脉冲音频故障转移
EN

Unix & Linux用户
提问于 2020-01-16 17:27:17
回答 1查看 300关注 0票数 1

如果我通过ALSA中的USB声卡播放音乐,不小心拔掉USB电缆,那么它就会自动停止播放,从而很容易检测到问题并修复它:

代码语言:javascript
复制
$ mpv --audio-device=alsa/hw:2 sound.wav
 (+) Audio --aid=1 (pcm_s16le 2ch 44100Hz)
AO: [alsa] 44100Hz stereo 2ch s16
A: 00:00:05 / 00:03:41 (2%)
[ao/alsa] Device lost, trying to recover...
...
Exiting... (Interrupted by error)
[2]

然而,如果我通过脉冲音频播放音乐并拔掉USB电缆,那么它就会“失败”到另一个接收器,并继续播放:

代码语言:javascript
复制
$ mpv --audio-device=pulse/alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo sound.wav
 (+) Audio --aid=1 (pcm_s16le 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch s16
A: 00:00:16 / 00:03:41 (7%)
# no error message

在这种情况下,我只有两个接收器,拔掉USB设备会导致音频连接移动到PCI设备,而PCI设备恰好是我的笔记本扬声器:

代码语言:javascript
复制
$ pacmd list-sinks | grep name:
        name: 
        name: 

重新连接USB电缆后,音频仍然通过笔记本扬声器发出。

如果我知道如何控制它,脉冲音频的行为可能是有用的,但我不知道。特别是,我希望能够控制哪个接收器在故障转移时被激活,我希望能够禁用故障转移,以便在拔出USB电缆时在客户端应用程序中出现错误。

显然,根据情况的不同,默认的行为可能会给我带来一些尴尬。例如,如果我在公共场合听一些带有耳机的私事,而Pulse音频决定通过我的笔记本扬声器重路由,那就太烦人了。如果我可以将USB接收器配置为一个空接收器(该接收器丢弃样本)或一个错误接收器(该接收器在客户端产生错误),则这种情况将得到纠正。这些都有可能吗?

EN

回答 1

Unix & Linux用户

发布于 2020-01-25 20:43:17

通过脉冲音频版本13.0,可以通过以下方式禁用水槽疏散

代码语言:javascript
复制
pactl unload-module module-rescue-streams

或者在/etc/pulse/default.pa中注释掉适当的行。

从14.0版本开始,module-rescue-streams成为核心功能的一部分,不能卸载。但是,一个新的布尔选项已被引进使禁用它成为可能。在14.0之后,可以通过在rescue-streams=no中添加/etc/pulse/daemon.conf来禁用下沉疏散。

目前还没有计划允许用户配置某个给定流在其接收器失败时被疏散到哪个接收器。流总是被疏散到默认的接收器。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/562481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档