【问题标题】:Enumerating capture ALSA devices and capture from them枚举捕获 ALSA 设备并从中捕获
【发布时间】:2013-11-10 21:25:30
【问题描述】:

我正在编写一个 C 程序,我想在其中枚举系统中的所有捕获设备(实际上,我知道我有三个网络摄像头和“集成”麦克风),识别它们并开始从它们中捕获所有设备同一时间。

使用 snd_device_name_hint() 枚举所有 PCM 设备,然后使用 snd_device_name_get_hint() 确定“IOID”以查看它们是否支持捕获,我取得了一些成功。但是现在,如何使用 snd_pcm_open() 打开相关设备以便捕获?我想使用“hw”接口,因为我不想让系统过载很多转换率,所以我也想看看是否有一种方法可以报告硬件支持的采样频率。

谢谢!

【问题讨论】:

    标签: c linux audio capture alsa


    【解决方案1】:

    snd_device_name_hint() 可以为同一硬件设备返回多个设备名称(例如,plughwhw)。 它还可以返回与单个硬件设备不对应的设备(例如null,或 PulseAudio/Jack/Bluetooth 设备)。

    要枚举硬件设备,请调用snd_card_next()snd_ctl_pcm_next_device()(示例见aplay 源代码)。

    要检查是否支持采样率,请致电snd_pcm_hw_params_test_rate()

    【讨论】:

    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 2016-08-28
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多