我的应用程序中的声音以超快的速度播放,而且发出可怕的噼啪声。在 Spotify 中,歌曲实际上以大约 3 倍的速度播放。我在 Google 上搜索了好几次,但能想到的只有一个2012 年 1 月的错误报告标记为已关闭。
我使用 PlayOnLinux 和 Wine 版本 1.5.0、1.6、1.6.0、1.7.0、1.7.8 以及 Wine 系统版本 1.4.1 测试了 Spotify 和 Hearthstone。它们都存在完全相同的可怕的噼啪声问题。这让我认为这不是 Wine 的缺陷。
从错误报告中重现的步骤:
重现步骤: 1. winecfg 2. 进入“音频”选项卡 3. 测试声音 实际结果: 产生噼啪声 预期成绩: 正常输出
还发出噼啪声。执行此操作时,winecfg 将以下内容打印到终端:
p11-kit:无法加载模块:/usr/lib/i386-linux-gnu/pkcs11/p11-kit-trust.so:/usr/lib/i386-linux-gnu/pkcs11/p11-kit-trust.so:无法打开共享对象文件:没有此文件或目录 err:ole:CoInitializeEx 尝试将此单元的线程模型从多线程更改为单元线程 ALSA lib pcm.c:7843:(snd_pcm_recover) 发生欠载运行 ALSA lib pcm.c:7843:(snd_pcm_recover) 发生欠载运行 ALSA lib pcm.c:7843:(snd_pcm_recover) 发生欠载运行 ALSA lib pcm.c:7843:(snd_pcm_recover) 发生欠载运行
(当我打开 winecfg 时显示第一行,当我单击“测试声音”时显示最后五行)
有什么线索可以说明哪里出了问题吗?如果我可以提供更多信息,请告诉我。
pulseaudio 1:4.0-0ubuntu6 amd64
答案1
由于这是 Google 返回的第一个结果,我想在这里分享我的经验。对于那些寻求快速修复的人,请将以下内容放入您的 ~/.bashrc 或 /etc/profile 中以进行系统范围的更改:
alias wine='PULSE_LATENCY_MSEC=60 wine'
这与 Skype 和 PulseAudio 4.0 及更高版本使用的修复方法相同,其行为方式与 wine 相同。希望这能有所帮助!
编辑(2016.01.12):
您可以通过将此行添加到 ~/.bashrc 并注销/重新启动来全局启用此变量
export PULSE_LATENCY_MSEC=60
如果您在此之后在其他应用程序中遇到音频问题,只需删除该行并注销或重新启动即可。如果您想暂时测试它,请打开一个新终端并粘贴该行。现在,您从此终端调用的每个应用程序都将设置变量,PulseAudio 将设置延迟。
有关此问题和“修复”的更多信息:http://arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/
答案2
运行终端(Ctrl+Alt+T)
发出命令pulseaudio -k
尝试重现问题。不应再快进播放。
至于噼啪声,日志会简单明了地告诉您,您遇到了缓冲区不足问题。更改采样质量...牺牲一些质量来提高速度,看看是否能解决缓冲区不足问题。
答案3
对于某些游戏,如果您使用 PlayOnLinux,则可以使用文本编辑器打开启动器并按Exec=
如下方式更改行:
Exec=env PULSE_LATENCY_MSEC=60 /usr/share/playonlinux/playonlinux --run "GameName" %F