我该如何找出能力的设备的平均没有开设第一个?问题是,我需要提供的参数 snd_pcm_open() 功能使用的测试职能,对我来说是愚蠢的。为什么问这是否是一个播放或记录设备,如果我必须告诉它来开函第一个?

作为一个例子,我想列举所有的播放设备,但只有这样我可以想到的是在打开每个装置我找到的(与 snd_device_name_hint()),并试图打开他们在播放模式,如果我管理的开放的,一切都很好。

问题是,与所有可能的变化(采样率,频道的,等等)将有一个可怕的大量开放()'s我需要执行,以找出参数。

有帮助吗?

解决方案

使用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搜索上手

其他提示

这是我的第一个要求,我需要了解所有可用的音频设备能力在Linux / Unix项目。然后,我需要使用这些设备来捕获和播放音频。我所做的是非常简单的。有其用于通过在Linux ALSA实用程序来查找设备在Linux / Unix命令。

有:

aplay -l

现在我所做的只是让程序通过ALSA给予了像的了。

有关每个人的帮助下,我已经做出了(。所以)库和一个示范程序在C ++中使用该库。

我的图书馆的输出是等 -

[root@~]# ./IdeaAudioEngineTest
HDA Intel plughw:0,0
HDA Intel plughw:0,2

此库还可以采集和回放实时音频数据。

,提供有文档中 IdeaAudio与双工库艾莎音频

提供可以执行命令.然后aplay是你的朋友。

http://alsa.opensrc.org/Aplay

aplay-l

列表的所有声卡和数字音频 设备

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top