PulseAudio HDMI 初始延迟问题解决指南

11次阅读
没有评论

问题描述

在Android TV上使用PulseAudio播放音频时,存在初始几秒的延迟。具体表现为:启动电视,选择输入源,设置默认音频输出设备,并启动播放器(如mplayer)。在执行命令后,大约3-5秒后才能听到声音。然而,如果立即关闭播放器并重新运行,则没有延迟或音质损失。但如果等待约30秒后再次尝试,则会重新出现延迟。

解决方案

方案1

根据最佳回复,经过调查发现,问题的原因在于PulseAudio模块module-suspend-on-idle。该模块会在一段时间内暂停音频输出以节省电力。可以通过注释掉此模块的配置来解决延迟问题。

操作步骤

  1. 编辑PulseAudio配置文件
    打开终端,编辑PulseAudio的默认配置文件 /etc/pulse/default.pa
    bash
    sudo nano /etc/pulse/default.pa
  2. 注释掉相关行
    在文件中找到并注释掉如下行:
    plaintext
    ### 加入以下注释 ###
    #load-module module-suspend-on-idle
  3. 重启PulseAudio服务
    执行以下命令重启PulseAudio服务以应用更改:
    bash
    pulseaudio -k
  4. 验证更改
    重新启动电视,设置默认音频输出设备,并测试播放音频,确认延迟问题是否解决。

方案2

如果方案1无法解决问题,或者您希望进一步优化音频播放体验,可以考虑调整PulseAudio的配置参数或优化系统设置。例如,调整缓冲区大小或优化系统资源分配。

操作步骤

  1. 调整缓冲区大小
    编辑PulseAudio配置文件,调整缓冲区大小:
    bash
    sudo nano /etc/pulse/daemon.conf

    找到或添加以下行:
    plaintext
    default-fragments = 4
    fragments-size = 256
  2. 重启PulseAudio服务
    执行以下命令重启PulseAudio服务以应用更改:
    bash
    pulseaudio -k

通过上述步骤,您可以有效解决PulseAudio在HDMI输出上的初始延迟问题。

正文完