У меня есть программа, которая воспроизводит некоторые звуки с помощью библиотеки SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/). Это хорошо работает, когда я просто использую Mix_OpenAudio, чтобы открыть соединение с устройством по умолчанию. Однако мне нужно настроить таргетинг на конкретное аудиоустройство. Я вижу, что в самой библиотеке SDL есть метод SDL_OpenAudioDevice, который будет делать то, что мне нужно, но тогда мне придется написать собственный микшер и все такое.
Кто-нибудь знает, как использовать SDL_mixer для открытия определенного аудиоустройства или другого микшера для SDL, который поддерживает это? Я действительно не хочу писать свой собственный микшер. Я занимаюсь разработкой приложения Win32 для Windows 7 на C ++.
Похоже, вы не можете использовать SDL_mixer для указания устройства. SDL_mixer использует старый метод SDL SDL_OpenAudio, и поэтому ни одно устройство не может быть специально предназначено. Я также изучил SFML, но у него есть то же ограничение. Затем я проверил PortAudio, но он не смешивает и вас, поэтому он выглядит так же, как на SDL. Однако оказывается, что написание простого микшера для воспроизведения зацикленных звуков, нацеленных на аудиоустройство по имени, не так сложно.
См. Документацию на сайте SDL для методов SDL_OpenAudioDevice и SDL_MixAudioFormat. Я также нашел эти примеры кода полезными для изучения того, как правильно загружать мои wav-файлы и как зацикливаться на образце:
http://www.libsdl.org/tmp/SDL/test/loopwave.c
http://www.libsdl.org/release/SDL-1.2.15/docs/html/sdlconvertaudio.html