Table of Contents
ALSA 和 PulseAudio 是两种不同的音频播放、录音方案。其中 PulseAudio 是目前更现代化更常用的方案。
核心问题在于,同一时间只能有一个进程访问声卡,音频的仲裁和混音工作是由 PulseAudio 和 ALSA 完成的,它们负责协调各个软件播放或录制声音的请求。但是,当两者同时安装时,除非将 ALSA 设置为通过 PulseAudio 后端传输,否则它们之间也会产生冲突。
CrossOver 内置了 PulseAudio 音频驱动,并且默认启用该驱动。如果您在 CrossOver 中运行 Windows 应用程序时声音正常,那么完全可以忽略此消息。
只有在一种情况下,此项检查才显得非常重要:当您在 Windows 应用程序中使用 MIDI (由于 PulseAudio 不支持 MIDI,因此它始终通过 ALSA 传输),且同时有其它程序正通过 PulseAudio 播放音频。如果 ALSA 未接入 PulseAudio,这两个音频系统可能会争夺资源并互相阻塞。
解决方法
- 如果 Windows 应用程序没有声音,请先确保 libpulse 库 无异常。
- 如果您确实需要 ALSA (比如,需要 MIDI 支持),请按照以下的指南操作。如果仍未能解决问题,您将需要深入检查 ALSA 的配置文件,确保它通过 PulseAudio 后端进行传输。
在 CrossOver 17 及更高版本中,最简单的解决方案是运行该命令:
/path/to/cxoffice/bin/cxfix nonpulseaudioalsa nonpulseaudioalsa.amd64或者添加 --show-all 参数,以查看 CrossOver 针对不同系统的具体修复机制。
另外,您也可以尝试运行以下任一命令。
- 针对 32 位 Windows 应用程序
- 64 位 Arch Linux : pacman -Syu lib32-alsa-plugins
- Debian 7 : apt-get install libasound2-plugins:i386
- 64 位 Fedora 13 : yum install alsa-plugins-pulseaudio.i686 alsa-plugins-pulseaudio.x86_64
-
64 位 openSUSE 11.2 : zypper install alsa-plugins-pulse-32bit
- 针对 64 位 Windows 应用程序
- Arch Linux : pacman -Syu alsa-plugins
- Debian 7 : apt-get install libasound2-plugins:amd64
- Fedora 13 : yum install alsa-plugins-pulseaudio.x86_64
- openSUSE 11.2 : zypper install alsa-plugins-pulse
注意:
- cxfix --show-all 可能会提供最新的修复方法。
- 上述命令通常也适用于它们的新版本及衍生版本。例如:Debian 7 的修复命令也可用于 Debian Testing、Ubuntu、Linux Mint、Deepin 以及 Pop! OS。同样的,Fedora 的修复命令也适用于 Red Hat Enterprise Linux、CentOS 等。