tim*_*b89 6 linux java pulse-audio alsa
我在我的系统上使用 PulseAudio,我按照 PulseAudio wiki的说明添加了一个监视器设备。监视器设备本身可以在 Audacity 等应用程序中正常工作和注册/运行,但我无法通过任何命令行工具让设备显示自己。aplay -L返回与 Audacity 大致相同的列表,但方便地缺少监视器设备。
我的最终目标是解析 Java 应用程序中的输出并最终将其传递给 FFmpeg。当出现 2 个通用的“捕获源端口”时,我能够通过 Java 音频 API 告诉设备存在,但它没有提供设备的名称,目标是让用户可以在有点友好的态度。
有什么方法可以让监视器设备显示在命令行应用程序中或通过 Java API / 库显示吗?
提前致谢!
使用pacmd list-sources或pactl list命令显示 PulseAudio 设备。要仅显示名称,您可以对其输出进行 grep 操作。这是PulseAudio 常见问题解答中的示例
$ LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2
通过在“.monitor”上附加 grep,您只能获取监视设备。
简而言之,问题似乎出在 alsa 级别而不是pulseaudio级别?如果您想查看 alsa 设备,请尝试。
aplay -l
Run Code Online (Sandbox Code Playgroud)
(但你已经提到的 aplay -L 是类似的)。
pulseaudio 位于 alsa 之上。因此,查看 pactl 会带来另一层软件……请参阅此处的疑难解答.com/linux/sound/sound_troubleshooting.htm。如果 alsa 看不到声音设备,那么pulseaudio肯定不会?
这非常简单:
这显示了接收器/输出端口:
aplay -L
Run Code Online (Sandbox Code Playgroud)
由于“监视器”是源/输入端口,因此您需要这样:
arecord -L
Run Code Online (Sandbox Code Playgroud)
更新:aplay 和 arecord 位于“alsa-utils”包中。安装:
sudo apt install alsa-utils
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34634 次 |
| 最近记录: |