如何在 Linux 中通用交换音频设备?

如何在 Linux 中通用交换音频设备?

我有内置声音设备和 USB 耳机,根据情况我可能想使用其中任何一个,但我没有找到好的解决方案。我想要一个跨平台的解决方案,但我大多数情况下都在使用 Linux。我可以配置一些应用程序(VLC)以使用其中一个,我可以在 KDE 中设置首选项,但不是所有东西都能监听,最明显的是 Flash 似乎只是抓取它能抓取的任何东西。

答案1

您需要使用类似的声音服务器脉冲音频,它可以作为您的声音应用程序的代理。

声音服务器基本上是声音应用程序的代理。它允许您在声音数据在应用程序和硬件之间传递时对其进行高级操作。使用声音服务器可以轻松实现诸如将音频传输到另一台机器、更改样本格式或通道数以及将多个声音混合成一个声音等操作。

怎么运行的

PulseAudio 的目标之一是重新路由所有声音流,包括那些试图直接访问硬件的进程的声音流(如旧式 OSS 应用程序)。PulseAudio 通过为使用其他音频系统(如 aRts 和 ESD)的应用程序提供适配器来实现此目的。

在 Linux 下的典型安装场景中,用户将 ALSA 配置为使用 PulseAudio 提供的虚拟设备。因此,使用 ALSA 的应用程序将向 PulseAudio 输出声音,然后 PulseAudio 使用 ALSA 本身来访问真实声卡。PulseAudio 还为想要直接支持 PulseAudio 的应用程序提供自己的本机接口,以及为 ESD 应用程序提供传统接口,使其适合作为 ESD 的直接替代品。

某些应用程序的旧版本在使用 ALSA 协议时无法与 PulseAudio 很好地配合,因此如果您遇到此问题,则需要找到 ALSA 中脉冲插件的补丁。

下面的图表显示了 PulseAudio 的位置和工作原理:

在此处输入图片描述

说实话,在配置 PulseAudio 时你可能会遇到问题,所以要做好准备。现在的情况比以前好多了,但还没有达到应有的水平。最好跟踪你所做的更改,以防以后需要恢复它们。你还应该看看这个文章以及在您开始之前阅读的其他有关令人困惑的 Linux 音频子系统的文章。

相关内容