gpt4 book ai didi

c - 程序化 ALSA 环回

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:59 28 4
gpt4 key购买 nike

我需要一些指示从哪里开始:

从任何使用 ALSA 播放音频的应用程序到连接的扬声器,我想获取样本并进行一些音频处理。我无法控制播放器,我希望能够处理来自任何来源的音频。基本上它将是一个 UV 计,也许稍后会使用 FFT(都在命令行上)。此外,我希望我的应用程序是独立的。

在我的研究中我发现:

  • 有一个环回内核模块。
  • 您可以使用配置文件做一些奇特的事情。
  • 能够创建插件。

使用内核模块并更改配置文件会引入我的应用程序对系统配置的一些依赖性。
并创建一个插件,我放弃了对该应用程序的控制,并且无法随时启动/终止它。

这对我来说并不令人满意,所以我想知道是否有办法:

  • 以编程方式创建环回设备
  • 或者是否有任何其他方法可以从其他应用程序正在写入的 pcm 播放设备读取数据。

最佳答案

您可以使用适用于 Linux 的 pulseaudio,在那里您可以非常轻松地创建环回设备。有一个 pactl 命令 - 它会帮助您创建一个空接收器,并且您可以从它回环。

像这样的//这将创建一个具有指定 channel 配置的空接收器

pactl load-module module-null-sink sink_name=sink6ch format=s16le rate=48000 channels=6 channel_map=front-left,front-right,front-center,lfe,rear-left,rear-right

//设为默认值

pactl set-default-sink sink6ch

可以通过它的监听器了解脉冲音频的监听器

关于c - 程序化 ALSA 环回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545647/

28 4 0