我对 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)
希望对您有帮助:)