以编程方式在 Linux 上查找可用的声卡

2024-02-18

有没有办法使用 asoundlib 和 C 以编程方式获取系统上可用声卡的列表?我想要它具有相同的信息/proc/asound/cards.


您可以使用迭代卡片snd_card_next,从值-1开始获得第0张牌。

这是示例代码;编译它gcc -o countcards countcards.c -lasound:

#include <alsa/asoundlib.h>
#include <stdio.h>

int main()
{
    int totalCards = 0;   // No cards found yet
    int cardNum = -1;     // Start with first card
    int err;

    for (;;) {
        // Get next sound card's card number.
        if ((err = snd_card_next(&cardNum)) < 0) {
            fprintf(stderr, "Can't get the next card number: %s\n",
                            snd_strerror(err));
            break;
        }

        if (cardNum < 0)
            // No more cards
            break;

        ++totalCards;   // Another card found, so bump the count
    }

    printf("ALSA found %i card(s)\n", totalCards);

    // ALSA allocates some memory to load its config file when we call
    // snd_card_next. Now that we're done getting the info, tell ALSA
    // to unload the info and release the memory.
    snd_config_update_free_global();
}

这是代码减少自卡名.c https://gist.github.com/dontknowmyname/4536535(这也会打开每张卡片以读取其名称)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式在 Linux 上查找可用的声卡 的相关文章

随机推荐

  • android firebase 12.0.0 - mAuth.getCurrentUser().getProvider() 方法被删除,如何获取提供程序名称?

    in firebase version 11 8 0 有一种方法叫做mAuth getCurrentUser getProviders 我可以打电话索取提供商名称列表 因此 对于电子邮件提供商来说 它是 密码 对于 Facebook 来说
  • 如何在 Visual Studio 中选择自定义菜单项的图标?

    我使用自定义命令 外部工具命令 作为 SolutionExplorer 的项目上下文菜单的条目 如何为我的自定义命令分配图标 我可以使用 修改选择 来选择命令的名称 并且可以选择 图像和文本 选项 但是 我没有找到用于选择用于我的自定义菜单
  • 如何在 Y 轴上绘制多个列的图表? (MS 图表控件)

    尝试遵循这个例子 http weblogs asp net dwahlin archive 2008 11 25 getting started with the asp net 3 5 chart control aspx http we
  • C++:是否有理由在非异常情况下使用异常

    让我给你举个例子 假设你有一个可以有子窗口的窗口类 每个子窗口都保存一个指向其父窗口的弱指针 每个窗口都有一个指向其子窗口的共享指针列表 现在我遇到的情况是 如果子窗口被破坏 我不知道它被破坏是因为父窗口被关闭 还是因为子窗口本身被关闭 因
  • 如何将我的整体程序分割成更小的、单独的文件?

    在我在网上看到的所有代码中 程序总是被分成许多较小的文件 不过 对于我所有的学校项目 我只需要一个巨大的 C 源文件 其中包含我使用的所有结构和函数 我想学习如何将我的程序分割成更小的文件 这似乎是专业标准 顺便问一下 这是为什么 只是为了
  • 如何在playframework 2.0中配置FS数据库?

    这有可能吗 在框架的第一个版本中似乎很容易完成 而不是使用 Default database configuration db default driver org h2 Driver db default url jdbc h2 mem
  • Spark 序列化错误:当我将 Spark Stream 数据插入 HBase 时

    我对 Spark 如何在数据格式方面与 HBase 交互感到困惑 例如 当我在下面的代码片段中省略 ERROR 行时 它运行良好 但是添加该行后 我发现了与序列化问题相关的 任务不可序列化 的错误 如何更改代码 发生错误的原因是什么 我的代
  • 如果 LONG_MAX 为 2147483647,strtol("-2147483648", 0, 0) 是否会溢出?

    根据规格strtol 如果主题序列具有预期的形式并且base的值为0 则以第一个数字开始的字符序列应被解释为整数常量 如果主题序列具有预期的形式并且base的值在2到36之间 则应将其用作转换的base 将每个字母赋予上面给出的值 如果主题
  • 识别iPhone中两个字符串之间的字符串[重复]

    这个问题已经存在了 可能的重复 根据条件从 iPhone 中的字符串中检索子字符串 https stackoverflow com questions 11100379 retrieving the substring based on c
  • Magento - 报价和订单之间的区别

    我对付款方式中如何调用报价和订单有疑问 据我所知 报价是提供的一组产品或服务 在 magento 中 报价数据是在单击 Onepage Checkout 的 下订单 按钮之前创建的 下订单后 订单数据将在 Magento 中创建 如果订单得
  • SLURM 对可执行文件进行多个并行调用

    我有一个可执行文件 需要多个选项和多个文件输入才能运行 可以使用可变数量的核心来调用可执行文件来运行 例如 可执行文件 a b c file fileA file fileB file fileZ cores X 我正在尝试创建一个 sba
  • 从一个文件中减去另一个文件中的行

    我找不到真正从一个文件中减去另一个文件的答案 我的目标是删除一个文件中出现在另一个文件中的行 应考虑多次出现 这意味着 例如 如果一行在文件 A 中出现 4 次 而在文件 B 中仅出现一次 则文件 C 应该包含其中的 3 行 File A
  • 具有相同菜单、相同布局的片段会导致重复的 menuitem

    我有一个包含 2 个片段的布局 这些片段使用相同的菜单 因为我有另一个布局 其中只有其中一个 在小屏幕设备中使用 我的问题是每个片段的菜单项显示在菜单中 并且由于它们来自同一菜单 因此它们彼此重复 我需要仅显示一个片段的菜单 而不是两者 无
  • 为“SFSpeechRecognizer”实现“用户停止说话”通知

    我正在尝试解决这个问题 SFSpeechRecognizer 检测话语结束 https stackoverflow com questions 42530634 sfspeechrecognizer detect end of uttera
  • Web 应用程序中的 ORM 是什么?

    我最近收到一家服务器公司的回复 询问我们是否在应用程序中使用 ORM 来完成筛选应用程序端的所有工作 如 Rails 或者我们是否编写大量 SQL 嵌入式函数等 这将使数据库服务器完成所有工作为您处理 谁能解释一下这是什么意思 我们的 We
  • 负载测试 ZeroMQ (ZMQ_STREAM) 以查找它可以处理的最大并发用户数

    有没有人有任何实际场景对 ZMQ 套接字进行负载测试以获得最大数量 他们可以处理的 并发用户 不是吞吐量 看起来 ZeroMQ 在 FD 限制方面存在一些严重问题 场景是 有许多 Web 服务器框架吹嘘它们可以处理数百万个并发用户 现在 如
  • React-Native:在项目或这些目录中找不到 React

    我们已经将 React Native 项目升级到最新的 React Native 版本 v0 61 2 和 React 16 9 0 并且它在 Android 上运行得很好 当我们尝试在 iosthought 上运行它时 我们收到消息 wa
  • UnsupportedOperation: fileno - 如何修复此 Python 依赖项混乱?

    我正在构建一个相当广泛的 Python 后端 并且在服务器 A 上运行得很好 然后 我在新的 开发 服务器 B 上安装了该系统 在该服务器上我只是从头开始再次安装了所有 pip 包 事情似乎进展顺利 所以我做了一个pip freeze 然后
  • 一台虚拟主机多个域 |通配符主机(共享主机)?

    我有以下任务 创建一个可通过 20 个不同域名访问的网站 相同的文件 相同的文件夹 相同的IP 问题 共享主机 这可以通过一个裸cname指向同一个公共子域来完成吗 或者我们是否需要一个静态IP 问题肯定是共享托管 我试图避免一一手动创建
  • 以编程方式在 Linux 上查找可用的声卡

    有没有办法使用 asoundlib 和 C 以编程方式获取系统上可用声卡的列表 我想要它具有相同的信息 proc asound cards 您可以使用迭代卡片snd card next 从值 1开始获得第0张牌 这是示例代码 编译它gcc