С#, воспроизводящий несколько аудиофайлов одновременно из ваших ресурсов?

Я хотел бы иметь возможность нажать кнопку, чтобы воспроизвести звук нажатия кнопки, пока музыка уже играет. SoundPlayer бесполезен, потому что он останавливает музыку для воспроизведения звука. Я добавил звуки в свои ресурсы (WindowsFormsApplication2.Resources.Properties.button) и не хочу вводить местоположение файла.


person user3011301    schedule 20.11.2013    source источник


Ответы (1)


Ответ от MerickOWA

Вы НЕ МОЖЕТЕ воспроизвести два звука одновременно с помощью SoundPlayer.

SoundPlayer использует собственную функцию WINAPI PlaySound для выполнения задачи, которая не поддерживает одновременное воспроизведение звуков. Создание нескольких экземпляров SoundPlayer не поможет.

Существует много вариантов, большинство из которых включают реализацию большого количества низкоуровневого API для собственной аудиобиблиотеки окна или DirectSound (обратите внимание, что ни один из них не является C # и требует много кода взаимодействия).

Самым простым вариантом было бы зависеть от проигрывателя Windows Media для воспроизведения звука для вас.

Добавьте ссылку на "C:\Windows\System32\wmp.dll"

затем используйте

var player = new WMPLib.WindowsMediaPlayer();
player.URL = @"..\..\bin\debug\tribal dance.wav";

Примечание: воспроизведение начинается сразу после установки свойства URL.

Недостатком этого подхода является то, что вы полагаетесь на медиаплеер для правильной работы вашего приложения. С другой стороны, вы можете использовать любой формат файла, который поддерживает медиаплеер.

person hammus    schedule 20.11.2013