Одновременное проигрывание нескольких звуков - C#
Формулировка задачи:
Народ, выручайте, ума не приложу что можно сделать.
Переписываю свою игрушку с flash, там на каждое столкновение объектов вызывается звуковой эффект, всего около десяти различных вариаций звуков.
Звуки должны по идее быть асинхронными и не мешающими друг другу. Одновременно может быть несколько различных столкновений (тоже до десяти)
Поискал по форумам, нашел решение через импорт winmm.dll
Асинхронно проигрывается, если количество одновременных проигрываний не превышает двух-трех, дальше
звуки тупо глушатся друг другом, и в итоге epic fail
Пробовал выводить звуки через SoundPlayer() с использованием Thread(), но там выводится только один
какой-либо звук, остальные пропускаются.
Может кто сталкивался с подобным? Есть ли другие способы проигрывания звуков, кроме вышеуказанных?
[DllImport("winmm.dll", EntryPoint = "sndPlaySound")] public static extern long PlaySound(byte[] fileName, int flags); public void play(byte[] mySound, int mode) { PlaySound(mySound, 1 /*mode*/); }//1-Async, 0-Sync
Решение задачи: «Одновременное проигрывание нескольких звуков»
textual
Листинг программы
using Microsoft.DirectX.AudioVideoPlayback; /*******************************/ Microsoft.DirectX.AudioVideoPlayback.Audio audio = new Microsoft.DirectX.AudioVideoPlayback.Audio(@"D:\cashis_-_lac_motion.mp3"); Microsoft.DirectX.AudioVideoPlayback.Audio audio1 = new Microsoft.DirectX.AudioVideoPlayback.Audio(@"D:\cashis_-_ms.jenkins.mp3"); audio.Play(); audio1.Play();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д