具有多个设备的SDL_OpenAudioDevice

时间:2018-08-31 19:05:48

标签: c++ linux audio sdl

我目前正在编写一个将声音输出到3种不同音频设备的应用程序。为此,我在PC上安装了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台设备?

0 个答案:

没有答案