本帖最后由 约书亚 于 17-5-27 23:24 编辑
不像Windows或OSX,Linux上可以更自由选择音频组件进行组合。 以下讨论的方案,是最流行的Alsa+Pulseaudio组合,Ubuntu等发行版也在使用。
先介绍一下最常见的Linux音频的处理方式,看下图
声卡 → 内核 → Alsa(低延迟) → Pulseaudio(高延迟) 或 JACK(低延迟) → 软件App。
图片来自linux-audio.com
我使用的连接方式JACK连接专业App或Pulseaudio这是我正在使用的连接方式,Alsa输出JACK,JACK输出给专业App与Pulseaudio。
- 内核和Alsa负责驱动声卡(驱动)
- Alsa连接JACK
- JACK连接Pulseaudio,Pulseaudio连接普通的桌面App、蓝牙和系统声音
- JACK负责连接专业的音频App(不经过Pulseaudio)
举个例子:
- 打开浏览器,在爱奇艺看视频,调节播放的音量,使用的是JACK+Pulseaudio。
- 打开Ardour(一款Daw),使用的是JACK。
看起来是不是有点像在Windows和其他系统?Windows系统声音控制就像Pulseaudio,Asio就像JACK。
其他常见的音频组件连接方式Pulseaudio或JACK连接App- 内核和Alsa负责驱动声卡(驱动)
- Pulseaudio负责连接普通的桌面App和蓝牙(网易云音乐、QQ、浏览器)
- JACK负责连接专业的音频App(录音软件)
举个例子:
- 打开浏览器,在优酷看视频,调节播放的音量,使用的是Pulseaudio。
- 打开Ardour(一款Daw),使用的是JACK。
因为Pulseaudio与JACK同时连接Alsa的话,需要先停用另外一方。所以如果想在使用Daw的时候,播放网页的声音,就必须停用连接着Daw的JACK,让JACK不再占用Alsa。
Alsa直接连接App我们在Linux是自由的,不仅限以上的音频组件连接方式。网页播放视频的声音、即使是Daw的声音也可以同时由Alsa控制。
Alsa可以直接控制所有的声音播放,可以不需要Pulseaudio或JACK。
举个例子:
- 打开浏览器,在Bilibili看视频,使用Alsa控制播放音量。
- 打开Ardour(一款Daw),使用Alsa。
因为Pulseaudio在各方面都有着不错的现成接口,如使用蓝牙,JACK在专业级的软件也有更丰富的支持。所以要求比较复杂的朋友,还是使用Pulseaudio和JACK比较方便。
最方便的部署方式使用Cadence,在图形界面按自己的喜好选择音频组件的连接方式。
- Archyaourt cadence
- Ubuntu
请参考官网
注意事项- 我使用的连接方式,Alsa → JACK → Daw或Pulseaudio,JACK必须为jack2-dbus版本,才能达到与其他应用程序通信的效果。
- Pulseaudio,JACK,Alsa之间的连接,除了程序本身需要安装,还需要安装依赖的插件。
- Archsudo pacman -S pulseaudio-alsa pulseaudio-jack alsa-plugins
- Ubuntusudo apt-get install pulseaudio-module-jack alsa-plugins必须知道的知识
- 控制Alsa调音台音量,需要先安装alsa-utils,终端输入alsamixer运行。
- 控制Pulseaudio的图形界面,在Gnome、Kde等流行的桌面默认都有调音台可以控制。 我使用Gnome桌面,还另外安装了pavucontrol。
- 关于JACK的图形界面控制,除了Cadence,还有QjackCtl。
参考资料
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x