WPF SoundPlayer многоканальный звук?

У меня есть приложение, которое издает звуки с произвольным интервалом. Когда два звука сталкиваются, они не переигрывают друг друга, а один прерывает другой.

Я использую SoundPlayer для воспроизведения звуков. (это приложение WPF)

Как я могу использовать несколько звуковых каналов, чтобы, если два звука звучали одновременно, они оба воспроизводились одновременно, а не прерывали один другой?

1 ответ

Решение

Насколько мне известно SoundPlayer использует встроенную функцию PlaySound, которая не поддерживает одновременное воспроизведение нескольких звуков.

Однако вы можете сделать это с System.Windows.Media.MediaPlayer,

var p1 = new MediaPlayer();
p1.Open(new Uri(@"C:\windows\media\ringout.wav"));
p1.Play();

System.Threading.Thread.Sleep(250);

var p2 = new MediaPlayer();
p2.Open(new System.Uri(@"C:\windows\media\ringout.wav"));
p2.Play();

Спящий режим просто добавляет немного задержки к воспроизведению, давая понять, что два звука действительно воспроизводятся одновременно.

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