通过 SPDIF 可听声音开始较晚,例如在测试声音对话框中,当声音应该说“前左”时,我最多只能听到“左”。
当我pavucontrol
打开(在后台)并单击测试声音时,它会立即启动。
通常,启动任何音频/媒体文件时,开头都是无法输出/听到的。连接光纤或同轴电缆。这似乎只影响 Ubuntu 12.10,在 12.04 中不是这种情况,在 13.04 中似乎也不是这种情况!
从ubuntuusers.de一点帮助——播放不可听见的窦性声音以保持 SPDIF 活跃:
apt-get install sox
play -n -c2 synth sin gain -100 # -c2 for two channels
ASRock 970 Extreme3 (和 GeForce 210) 上的硬件:
$ cat /proc/asound/cards
0 [SB ]: HDA-Intel - HDA ATI SB
HDA ATI SB at 0xfe200000 irq 16
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfe080000 irq 25
$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892
一些pulseaudio -v
输出粘贴到http://paste.ubuntu.com/5629082/
我能以某种方式从 pulseaudio 2.1 升级吗?
Live Ubuntu 13.04 输出粘贴到http://paste.ubuntu.com/5630475/—— 实际上这里只有第一次调用声音(或者在用户长时间暂停之后?)开始延迟,即在“...左”之后听到“前右”,而在 12.10 中它总是“...左”,“...右”。
答案1
我知道我即将重新开始一个旧线程,但是我已经找到了一个可以解决该问题的简单可行的解决方案。
从 :https://wiki.archlinux.org/index.php/PulseAudio
要禁用 module-suspend-on-idle 模块的加载,请在使用的配置文件 (~/.config/pulse/default.pa 或 /etc/pulse/default.pa) 中注释掉以下行:
### Automatically suspend sinks/sources that become idle for too long
# load-module module-suspend-on-idle
最后重新启动 PulseAudio 以应用更改。
答案2
查找包含
load-module module-suspend-on-idle
以下行的 PulseAudio 配置文件:neatsoft@desktop:~$ grep module-suspend-on-idle /etc/pulse/* /etc/pulse/default.pa:load-module module-suspend-on-idle /etc/pulse/system.pa:load-module module-suspend-on-idle
注释掉那几行。
重新启动 PulseAudio 以应用更改:
pulseaudio -k
刚刚在 Ubuntu 17.04 上测试过,运行良好。
答案3
听起来电源管理阻止了声卡输出第一个音频片段。来自http://wiki.gentoo.org/wiki/Power_management/Soundcard,重要内容如下:
运行时调优
您可以在 /sys/module/snd_hda_intel/parameters 下的 sysfs 文件系统中调整驱动程序
power_save_controller 旋钮控制是否启用省电模式。它由内核选项 ... power-saving ... 预设。
power_save 旋钮设置超时时间(以秒为单位)。它由内核选项默认超时时间预设...
pm-实用程序
pm-utils 包含一个脚本,用于在使用电池时启用省电模式,在使用交流电时禁用。它会覆盖内核的默认值。
如果您使用 pm-utils,但不想要这种调节,请禁用该脚本:root # touch /etc/pm/power.d/intel-audio-powersave
从上面的文字来看,可以尝试以下操作:
在终端中,运行以下命令并尝试再次播放音频:
echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
如果音频没有问题,那么您需要在 /etc/modprobe.d/ 中添加一个包含以下内容的新文件以使它永久生效:
options snd_hda_intel power-saving=N
运行
sudo touch /etc/pm/power.d/intel-audio-powersave
并重启如果修复有效,则音频应该可以正常播放,如果没有,则再次删除该文件:
sudo rm /etc/pm/power.d/intel-audio-powersave
如果这些都不起作用,那么我就没主意了:-)。
答案4
这是 SPDIF/数字输出和接收器处理信号等的常见问题。如果没有信号,接收器将进入空闲模式。开始播放信号需要几到几百毫秒的时间。解决此问题的唯一方法是让您的 SPDIF 输出不断发送一些信号,从而始终保持接收器处理处于活动状态。目前,我刚刚在 Windows 中使用某人用 .NET 编写的一个小实用程序解决了这个问题,该实用程序始终输出空信号。他称之为 SPDIF Keep-Alive。这可以保持信号流动,我的接收器可以不断监听。我还没有看到在 Linux 上执行此操作的方法,但我想创建这样的东西的支持无处不在。希望这能给某人一个想法,让他们知道接下来要搜索什么或去哪里查找!-K9SPY
数字音频保持连接保持连接 SPDIF保持连接保持连接 TOSLINK保持连接保持连接超时进入休眠关闭 SPDIF声音延迟