Отправить звук на разные аудио устройства
Можно ли воспроизвести звук на устройстве воспроизведения, которое не установлено в качестве устройства воспроизведения по умолчанию? Мне нужно одновременно воспроизводить несколько файлов через несколько устройств вывода.
Кто-нибудь знает решение для.net? (С #)
Спасибо!
3 ответа
Вам придется перейти на более низкий уровень API. Вы можете попробовать найти оболочку C# для Wasapi, ASIO, DirectSound или MediaFoundation. Может быть, фреймворк XNA мог бы справиться с задачей, которая управляется фреймворком поверх DirectX
Хорошо я играл с подобной проблемой.
- XNA не может отправить вывод на определенное устройство.
- Я закончил с http://naudio.codeplex.com/, это именно то, что вам нужно. Это оболочка C# для библиотек Wasapi, ASIO, DirectSound. Он также включает в себя много очень полезных классов для преобразования, декодирования, визуализации и т. Д. Для простого проигрывателя, посмотрите пример проекта NAudioDemo.
выяснить метод CreateWaveOut(). Здесь вы должны выбрать свое устройство воспроизведения. например:
MMDevice device = new MMDeviceEnumerator()
.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.All)
.FirstOrDefault(d => d.ID == "yourplaybackdeviceid");
IWavePlayer waveOut = new WasapiOut(device, AudioClientShareMode.Shared, false, latency);
Загрузите библиотеку naudio с вкладки исходного кода, а не из Download->Release, она не очень актуальна и немного глючит.
Еще один хороший инструмент - bass.net http://www.un4seen.com/