flashpayer 声音断断续续

flashpayer 声音断断续续

经过多次更新(包括升级到 flashplayer 11 和内核 3.8.2)后,flashplayer 和 Skype 的声音变得不稳定。

设置

在我的设置中,我将 .asoundrc 设置为使用pulseaudio(从某处复制,因为我不知道 .asoundrc 的语法)

pcm.pulse {
    type pulse
}
ctl.pulse {
    type pulse
}
pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

Pulseaudio 设置为使用插孔作为源和接收器。杰克使用火线调音台作为声卡。

如果重要的话,我有一个 nvidia 显卡 (GeForce 8800 GT),带有 nvidia (NVIDIA-Linux-x86-310.40) 的专有驱动程序。

症状

来自 vlc 或 celementine 的声音效果完美。我相信这些直接与pulseaudio对话。使用 mplayer 我可以在-ao alsa pulse和之间进行选择jack,并且一切正常。所以我没有理由相信链的尾部有任何问题,即脉冲->插孔->火线。

但 aplay 也可以正常工作,我相信它必须通过 alsa 层才能访问脉冲。

Skype,尤其是 Flashplayer 会产生断断续续的声音,就好像采样率不正确,系统必须每半秒左右来回跳跃一些样本。 Flash 不仅在 Firefox 中表现出这种行为,而且在 Chrome 中也表现出这种行为。

Skype 有时工作正常,即当我终止并重新启动它时,我可以让它工作。

到目前为止分析

我比较了从 aplay、firefox 或 skype 播放时的输出pactl list,但看不到任何线索。我的采样率似乎是 44100,而 Skype 的采样率为 44800,因此 pactl 显示speex-float-3正在发生重新采样。但我可以用 44100 和 48000 播放波形文件,所以我最初的预感是重采样导致了问题可能是不正确的。

我还比较了lddaplay 和 Skype 的输出,Skype 使用与 aplay 相同的共享库,当然还有更多。

我尝试使用 alsa jack 插件,这样 alsa 可以绕过脉冲直接与 jack 对话,但 Flash 播放会在几秒钟后停止产生声音。

播放flash时CPU占用率高

16494 23.6 478m     1 martin    1000 1 S  20   0   58 firefox
14797  4.7  95m  4097 root         0 1 S  20   0   11 xorg
15979  5.1 103m 15806 martin    1000 1 S  20   0    7 jackd
25561  8.5 172m     1 martin    1000 0 S   9 -11    5 pulseaudio
25534  4.1  82m 17830 martin    1000 0 S  20   0    2 skype

dmesg偶尔表现出

pulseaudio[15996]: segfault at 0 ip b256416a sp bfe34d40 error 4 in module-jack-sink.so[b2562000+4000]

这当然“不好”,但在需要时,pulseaudio 可以重新启动

/var/log/messages 或 .xsession-error 中或 Firefox 或 chrome 的 stdout/stderr 上没有任何内容。

任何帮助将非常感激。我也很高兴能得到指点,下一步该去哪里看或者谷歌搜索什么。奇怪的是,似乎没有多少人有这个问题。

相关内容