В настоящее время я пишу приложение, которое будет выводить звук на 3 разных аудиоустройства. Для этого я установил 3 USB аудиоустройства на свой компьютер, все той же марки. Я хотел использовать SDL2 в качестве устройства вывода (хотя я открыт для других предложений). Я посмотрел на документацию и в ней указывается первый параметр (устройство):
строка UTF-8, о которой сообщает SDL_GetAudioDeviceName (); см. примечания
Теперь я написал пример программы, которая просто перечисляет доступные устройства:
#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 устройства?