2

我需要一些指针,从以下内容开始:

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

在我的研究中,我发现:

  • 有一个环回内核模块。
  • 你可以用配置文件做一些花哨的事情。
  • 可以创建插件。

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

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

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

1 回答 1

1

你可以使用pulseaudio for linux,你可以很容易地创建一个环回设备。有一个pactl命令——它将帮助你创建一个空接收器,你可以从它环回。

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

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

您可以使用它的监控设备来阅读有关脉冲音频的监控设备

于 2018-06-20T01:30:29.460 回答