声音输出开始延迟

typ*_*ype 17 sound pulseaudio alsa spdif

通过 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
Run Code Online (Sandbox Code Playgroud)

华擎 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
Run Code Online (Sandbox Code Playgroud)

一些pulseaudio -v输出粘贴到http://paste.ubuntu.com/5629082/

我可以以某种方式从pulseaudio 2.1升级吗?

Live Ubuntu 13.04 输出粘贴到http://paste.ubuntu.com/5630475/——实际上这里只有第一次声音调用(或在用户长时间暂停之后?)开始延迟,即在“...离开”之后,听到“Front Right”,而在 12.10 中总是“... Left”、“... Right”。

Dr_*_*vil 44

我知道我要恢复一个旧线程,但我找到了一个简单的解决方案来解决这个问题。

来自: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
Run Code Online (Sandbox Code Playgroud)

最后重新启动 PulseAudio 以应用更改。

  • 这拯救了我的一天!!为什么这是默认设置?这就是让用户认为“哦 linux 不好,音频滞后”的事情 (6认同)

Dan*_*lyn 5

听起来电源管理正在阻止声卡输出第一个音频片段。来自http://wiki.gentoo.org/wiki/Power_management/Soundcard,重要的部分如下:

运行时调整

您可以在 /sys/module/snd_hda_intel/parameters 下的 sysfs 文件系统中调整驱动程序

power_save_controller 旋钮控制是否启用省电模式。它是由内核选项预设的...省电....

power_save 旋钮设置超时(以秒为单位)。它是由内核选项默认超时预设的...

pm-utils

pm-utils 包含一个脚本,用于在使用电池时启用省电模式并在使用交流电时禁用省电模式。它会覆盖内核的默认值。

如果您使用 pm-utils,但不想要这种调节,请禁用该脚本: root # touch /etc/pm/power.d/intel-audio-powersave

从上面的文字来看,要尝试的事情是:

  1. 在终端中,运行以下命令并尝试再次播放音频:

    echo N | sudo tee /sys/module/snd_hda_intel/parameters/power_save_controller
    
    Run Code Online (Sandbox Code Playgroud)

    如果音频正常,那么您需要通过在 /etc/modprobe.d/ 中添加包含以下内容的新文件来使其永久化:

    options snd_hda_intel power-saving=N
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行sudo touch /etc/pm/power.d/intel-audio-powersave并重新启动

    如果修复有效,则音频应该正常播放,如果没有,则再次删除文件:

    sudo rm /etc/pm/power.d/intel-audio-powersave
    
    Run Code Online (Sandbox Code Playgroud)

如果这些都不起作用,那么我就没主意了:-)。


小智 5

  1. 查找 PulseAudio 配置文件,其中包含load-module module-suspend-on-idle以下行:

    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
    
    Run Code Online (Sandbox Code Playgroud)
  2. 注释掉该行。

  3. 重新启动 PulseAudio 以应用更改:

    pulseaudio -k
    Run Code Online (Sandbox Code Playgroud)

刚刚在 Ubuntu 17.04 上测试,运行良好。