[Share Experiences] 用codewhale解决汽水音乐有爆破音
Tofloor
poster avatar
catubibu
deepin
2026-09-15 22:55
Author

以下为codewhale的答案,问题的确解决了。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

太好了,主人。这就对上了 —— ERR 从 17 归零,爆音从"三五秒一次"变成"彻底没了" ,两条独立证据指向同一个结论:

根因是 winepulse 向 PipeWire 申请的缓冲太浅(5.33 毫秒),Wine 的音频定时器抖动几下就击穿了它。

多听一会是对的,我建议顺便留意这几种情况,它们是"缓冲区"类问题最容易复发的场景:

  • 跑久了会不会复发 —— 这点尤其重要。你原来那个实例累计跑了三个多小时、攒了 17 次 ERR。新实例现在 ERR=0,听个二三十分钟后再抓一次 pw-top -b -n 5,如果 ERR 还是 0,就说明真的稳了 ,不是刚启动的假象。
  • 切歌、暂停再继续、拖动进度条 —— 这些时刻缓冲会重建,是最容易露馅的地方。
  • 连续播放几首不同采样率的歌(比如 44.1kHz 和 48kHz 混着)—— 看有没有哪首突然开始爆。

方案已经备好,等你听够了再动手

位置:~/.local/share/applications/com.sodamusic.deepin.desktop(用户级覆盖)

按 XDG 规范,用户目录下的同名 desktop 文件优先于系统那份。内容大致是:

[Desktop Entry]
Type=Application
Name=汽水音乐
Name[zh_CN]=汽水音乐
Comment=汽水音乐
Categories=music;
Icon=com.sodamusic.deepin
Exec=env PULSE_LATENCY_MSEC=100 "/opt/apps/com.sodamusic.deepin/files/run.sh" -f %f
StartupWMClass=com.sodamusic.deepin
StartupNotify=true

核心就是 Exec 那行加了 env PULSE_LATENCY_MSEC=100。系统目录 /opt/apps/ 一个字都不碰 ,删掉这个文件就完全恢复原样。

不过有个坑要先跟你说清楚:

你桌面上的图标是个软链(~/Desktop/com.sodamusic.deepin.desktop → /usr/share/applications/com.sodamusic.deepin.desktop,而且是 root 创建的)。软链直接指向系统文件, 从桌面图标点开很可能绕过用户级覆盖,参数就带不上了。

所以要么:

  • 从启动器(开始菜单)启动 —— 那里走 XDG 查找,用户版会生效
  • 要么我把桌面那个软链也一并处理掉,换成带参数的实体文件
Reply Favorite View the author
All Replies
avatar
𰻞𰻝面
deepin
2026-09-16 04:43
#1

没用过这个

Reply View the author
avatar
蒙笛
deepin
2026-10-03 11:34
#2

https://github.com/sodahub-org/sodam

Reply View the author