gpt4 book ai didi

c - 如何在不打开设备的情况下以编程方式在 Linux 中找出 ALSA 音频设备功能

转载 作者:IT王子 更新时间:2023-10-29 01:20:35 26 4
gpt4 key购买 nike

如何在不先打开设备的情况下了解 ALSA 设备的功能?问题是,我需要向 snd_pcm_open() 函数提供参数以使用对我来说很愚蠢的测试函数。如果我必须先告诉 open 函数,为什么要问这是播放设备还是录音设备?

例如,我想列出所有播放设备,但我能想到的唯一方法是尝试打开我找到的每个设备(使用 snd_device_name_hint())并尝试在播放模式,如果我设法打开,一切都很好。

问题是,对于所有可能的变化(采样率、 channel 等),我需要执行大量的 open() 以找出参数。

最佳答案

使用 snd_ctl_next 遍历所有设备,然后使用 snd_ctl_open 获取有关设备的信息 - 这与 snd_pcm_open 不同,如果另一个程序打开了设备或者您的设置有误,后者可能会失败。

它非常密集,但这里有一些开源代码可以遍历您可以查看的所有 ALSA 设备:https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/alsa/pa_linux_alsa.c - 搜索 BuildDeviceList 开始。

关于c - 如何在不打开设备的情况下以编程方式在 Linux 中找出 ALSA 音频设备功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1866673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com