ubuntu 16.04 上出现闪烁的声音

ubuntu 16.04 上出现闪烁的声音

我对 ubuntu 和 linux 还不熟悉。我遇到了一些声音问题,当我听音乐时,尤其是在 Firefox 上,我会听到那些声音“断断续续”——也就是说,每隔 10-30 秒,声音就会停止一小会儿,然后又恢复。

当我通过预装播放器离线听音乐时也会发生这种情况,但程度较轻。

我尝试取消选中 Firefox 中的“可用时使用硬件加速”选项,但问题仍然存在。

谢谢你!

答案1

好的,我找到了解决问题的方法。

我按照本教程中的说明进行操作: https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Setting_the_default_fragment_number_and_buffer_size_in_PulseAudio

如果你对解决方案背后的逻辑感兴趣,请自行查看链接。这个答案纯粹是技术性的。

简而言之,我首先运行:

sudo gedit /etc/pulse/default.pa

并添加tsched=0到现有的行 - load-module module-udev-detect。这意味着最终结果应该是:load-module module-udev-detect tsched=0

根据教程,它会关闭所谓的“基于计时器的音频调度”功能。

之后我运行了命令:pactl list sinks并得到了一长串信息和参数的输出。

Sink #0
State: RUNNING
Name: alsa_output.pci-0000_00_1f.3.analog-stereo
Description: Built-in Audio Analog Stereo
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 6
Mute: no
Volume: front-left: 47842 /  73% / -8.20 dB,   front-right: 47842 /  73% / -8.20 dB
        balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
Latency: 92790 usec, configured 99954 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
Properties:
    alsa.resolution_bits = "16"
    device.api = "alsa"
    device.class = "sound"
    alsa.class = "generic"
    alsa.subclass = "generic-mix"
    alsa.name = "Generic Analog"
    alsa.id = "Generic Analog"
    alsa.subdevice = "0"
    alsa.subdevice_name = "subdevice #0"
    alsa.device = "0"
    alsa.card = "0"
    alsa.card_name = "HDA Intel PCH"
    alsa.long_card_name = "HDA Intel PCH at 0xef328000 irq 131"
    alsa.driver_name = "snd_hda_intel"
    device.bus_path = "pci-0000:00:1f.3"
    sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
    device.bus = "pci"
    device.vendor.id = "8086"
    device.vendor.name = "Intel Corporation"
    device.product.id = "9d71"
    device.form_factor = "internal"
    device.string = "front:0"
    device.buffering.buffer_size = "17632"
    device.buffering.fragment_size = "4408"
    device.access_mode = "mmap"
    device.profile.name = "analog-stereo"
    device.profile.description = "Analog Stereo"
    device.description = "Built-in Audio Analog Stereo"
    alsa.mixer_name = "Conexant Generic"
    alsa.components = "HDA:14f11f72,104311b0,00100000 HDA:8086280b,80860101,00100000"
    module-udev-detect.discovered = "1"
    device.icon_name = "audio-card-pci"
Ports:
    analog-output-speaker: Speakers (priority: 10000)
    analog-output-headphones: Headphones (priority: 9000, not available)
Active Port: analog-output-speaker
Formats:
    pcm

你应该只关注以下四行:

  • 样品规格:s16le2通道 48000赫兹

  • alsa.分辨率位 = "16

  • 设备.缓冲.缓冲区大小 = "17632

  • 设备.缓冲.片段大小 = "4408

使用这 4 行信息,你将计算出 2 个值:

值 1:

(简单来说:https://i.stack.imgur.com/CzEq3.png):

在第一行我得到了结果2ch 48000Hz,在第二行我得到了结果值,"16"所以我只是简单地这么做了2*48000*16=1536000

现在将第四行的值(对我来说"4408")除以刚刚计算的结果(对我来说1536000),然后乘以 1000。

对我来说这意味着:值 1 = 2.86979

值 2:只需将第一行的值除以第四行的值。

对我来说这意味着:值 2= 17632/4408=4

-

最后运行命令:sudo gedit /etc/pulse/daemon.conf

寻找以下行:

; default-fragments = ---
; default-fragment-size-msec = ---

并输入如下值:

; default-fragments = value 1
; default-fragment-size-msec = value 2

现在剩下要做的就是重新启动 pulseaudio。运行:

killall pulseaudio
pulseaudio --check

然后从运行对话框启动 pulseaudio(默认为 Alt + F2)

希望对您有帮助:)

相关内容