酒声播放速度太快,发出可怕的声音


14

我的应用程序中的声音以超快的速度播放,并且发出嘶哑的声音。在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进行了测试。他们都有完全相同的可怕的crack啪声问题。这使我假设这不是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。因此:无法打开共享库文件:没有这样的文件或目录
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

也许相关的或重复:askubuntu.com/questions/124602/...
donquixote

Answers:


24

由于这是Google返回的第一个结果,所以我想在这里分享我的经验。对于那些寻求快速修复的人,请将以下内容放入〜/ .bashrc或/ etc / profile中以进行系统范围的更改:

alias wine='PULSE_LATENCY_MSEC=60 wine'

这与Skype和PulseAudio 4.0及更高版本所使用的修补程序相同,其行为方式与wine相同。希望这可以帮助!

编辑(12.01.2016)

您可以通过将这一行添加到〜/ .bashrc并注销/重新启动来全局启用此变量

export PULSE_LATENCY_MSEC=60

如果此后在其他应用程序中遇到音频问题,只需删除线路并注销或重新启动即可。如果要临时测试,请打开一个新终端并粘贴该行。现在,您从此终端调用的每个应用程序都将设置变量,而PulseAudio将设置延迟。

有关此问题和“修复程序”的更多信息:http : //arunraghavan.net/2013/08/pulseaudio-4-0-and-skype/


从PlayOnLinux和类似应用程序启动Wine时,这也行得通吗?我会测试,但我不知道如何确认结果
Hubro 2014年

1
不知道,从来没有运行过PlayOnLinux。您可以通过在终端中键入上述命令并从PlayOnLinux运行某些命令来对其进行测试。如果您的声音很好,那么就可以了。如果不是,您可以尝试通过直接在终端上运行“ export PULSE_LATENCY_MSEC = 60”,然后在同一终端上运行PlayOnLinux来直接设置变量。它将“继承”该变量,并且该变量应该起作用。
Iskren 2014年

救了我的培根。我多年来一直遇到这个问题,这是唯一有效的方法。不过,我很好奇,您还记得您从哪里获得此解决方案的吗?我们知道为什么会起作用吗?
Hannibal Lecter博士2014年

前一段时间我在使用PA4和Skype时遇到问题,正在寻找解决方案。过了一会儿,酒开始做同样的事情,所以我只是尝试了一下Skype并成功了。这篇文章很好地解释了问题所在以及如何解决此问题:arunraghavan.net/2013/08/pulseaudio-4-0-and-skype
Iskren 2014年

恐怕此解决方案在POL中不起作用。虽然乍一看似乎如此。
Tamsyn Michael

7

运行终端(Ctrl + Alt + T)

发布命令 pulseaudio -k

尝试重新创建问题。不应该再快进了。

至于日志告诉您的简单明了,您有一个缓冲区不足。更改采样质量...牺牲一些质量以提高速度,看看是否可以解决欠载问题。


我今天早上起床,无法重现问题。声音现在播放完美。从昨天开始,我唯一要做的就是将耳机的声音输出切换到HDMI。今天我转回去,crack啪声消失了。不过,它可能很快会再次发生,然后我将尝试杀死Pulseaudio。
Hubro 2013年

问题又回来了。我尝试了pulseaudio -k,所有声音都消失了。Ubuntu上的声音滑块变灰,并且声音选项中没有声音设备。必须重启才能恢复声音。
Hubro

脉冲音频应自行重启,下次遇到问题时,请尝试 sudo alsa force-reload
DeeJayh 2013年

同样,只要发出该命令pulseaudio,它就可以单独运行,而不是单独运行。
DeeJayh 2013年

这不是CPU瓶颈。我在4790k的《魔兽世界》中遇到同样的问题,我的CPU占用率从未超过30%,并且我将niceWoW和Pulseaudio设置为-20。软件中的某些内容阻止了pulseaudio实际填充缓冲区。
乔纳森·鲍德温

3

对于某些游戏,如果您使用PlayOnLinux,则可以使用文本编辑器打开启动器,并Exec=如下更改行:

Exec=env PULSE_LATENCY_MSEC=60 /usr/share/playonlinux/playonlinux --run "GameName" %F

1

试试这个解决方案。它主要与PulseAudio有关,我个人将其删除并再次尝试,但欠载消失了,但是我失去了将音频输出移至不同接收器的功能。这种方法可以使pulseaudio和ALSA彼此很好地协作,而不会直接让pulseaudio占用硬件。


3
虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Stormvirux

对于需要记录来自Wine应用程序的音频的任何人来说,这不是一个解决方案,或者它对延迟的要求丝毫没有引起任何关注(Pulse可以在延迟方面保持足够快的速度播放和松动,但也可以在其中放置dmix ...)
乔纳森·鲍德温(Jonathan Baldwin)

0

2
欢迎来到Ask Ubuntu!虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
Stormvirux

1
同意,但这只是我对提供的网址进行了很好描述的修复程序中的一个小调整(请参阅底部评论)
Aaron Williams

0

运行良好之后,portaudio应用程序在拍摄错误时开始听起来不稳定

ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred
ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred

解决方案-首先,您需要终止现有进程...发出这些cmd

    pulseaudio --kill

    jack_control start

完成上述操作后,请发出以下命令:

    jack_control exit

    pulseaudio --start

现在相同的应用程序然后通过portaudio播放音频就好了

cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"

dpkg -l|grep portaudio
ii  libportaudio2:amd64                         19+svn20140130-1build1                               amd64        Portable audio I/O - shared library
ii  libportaudiocpp0:amd64                      19+svn20140130-1build1                               amd64        Portable audio I/O C++ bindings - shared library
ii  portaudio19-dev                             19+svn20140130-1build1                               amd64        Portable audio I/O - development files
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.