Отправить звук на разные аудио устройства

Можно ли воспроизвести звук на устройстве воспроизведения, которое не установлено в качестве устройства воспроизведения по умолчанию? Мне нужно одновременно воспроизводить несколько файлов через несколько устройств вывода.

Кто-нибудь знает решение для.net? (С #)

Спасибо!

3 ответа

Вам придется перейти на более низкий уровень API. Вы можете попробовать найти оболочку C# для Wasapi, ASIO, DirectSound или MediaFoundation. Может быть, фреймворк XNA мог бы справиться с задачей, которая управляется фреймворком поверх DirectX

Хорошо я играл с подобной проблемой.

  1. XNA не может отправить вывод на определенное устройство.
  2. Я закончил с 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/

Другие вопросы по тегам