c++ - 具有多个设备的 SDL_OpenAudioDevice
问题描述
我目前正在编写一个应用程序,它将向 3 个不同的音频设备输出声音。为此,我在我的电脑上安装了 3 个 USB 音频设备,都是同一个品牌。我想使用 SDL2 作为输出设备(尽管我对其他建议持开放态度)。我查看了文档,它声明为第一个参数(设备):
SDL_GetAudioDeviceName() 报告的 UTF-8 字符串;见备注
现在我编写了一个示例程序,它只列出了可用的设备:
#include <SDL2/SDL.h>
#include <iostream>
int main()
{
SDL_Init( SDL_INIT_EVERYTHING );
std::cout << SDL_GetError() << std::endl;
atexit( SDL_Quit );
int count = SDL_GetNumAudioDevices(0);
for (int i = 0; i < count; ++i)
{
std::cout << "Device " << i << ": " << SDL_GetAudioDeviceName(i, 0) << std::endl;
}
return 0;
}
它枚举所有可用的设备。问题是,所有 3 台设备都会给我相同的名称:
Device 0: Internes Audio Digital Stereo (IEC958)
Device 1: C-Media Electronics, Inc. Audio Adapter
Device 2: C-Media Electronics, Inc. Audio Adapter
Device 3: C-Media Electronics, Inc. Audio Adapter
有什么方法可以使用其他东西(例如 USB 路径)作为参数或确保我可以打开所有 3 个设备?
解决方案
推荐阅读
- android - 如何检查 arcore 图像数据库中的内容?
- javascript - 在 fullcalendar.io 上重新渲染,删除所有事件
- python - 使用 RDKIT:以整数/计数形式生成指纹
- reactjs - 日期排序在 muidatatable 中不起作用
- bind9 - Bind9 将 DNS 查询转发到 2 个不同的 DNS 服务器 | 内部 <-> dmz <-> 外部
- sql - 如何检查日期是否在并行时间间隔内?
- python - 元数据库 - WHERE 字段 IN 子句
- google-apps-script - 清除两个或多个工作表中的单元格
- javascript - 在 Cypress 中重试命令失败后的选项
- c++ - 在 C++ 中删除字符串中非字母的所有字符