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();
Спящий режим просто добавляет немного задержки к воспроизведению, давая понять, что два звука действительно воспроизводятся одновременно.