Jouer 2 sons ensemble en même temps

Concevoir un jeu pour n’importe quel ordinateur portable:

Je veux jouer 2 sons en même temps! Une musique de fond et un son lorsque vous appuyez sur un bouton!

Utiliser System.Media ne me permettra pas de jouer deux sons ensemble. Pour la musique de fond, j’ai utilisé ce qui suit:

 SoundPlayer sp = new SoundPlayer(@"..\..\bin\debug\sortingbal dance.wav"); sp.Play; 

Si j’ai joué à un autre SoundPlayer , le précédent s’arrête!

Je veux que la musique de fond continue à jouer jusqu’à ce que le formulaire soit fermé! Et en même temps, si un bouton est cliqué, un autre son sera joué avec la musique!

J’ai également essayé d’append Windows Media Player à la boîte à outils et de l’utiliser (me permettant de jouer 2 sons en même temps). Cela fonctionne bien, mais le chemin produira une erreur si je le mets (@""..\..\bin\debug\sortingbal dance.wav"); ordinateur.

Aucune suggestion?

Vous NE POUVEZ PAS jouer deux sons à la fois avec SoundPlayer.

SoundPlayer utilise la fonction native WINAPI PlaySound pour accomplir cette tâche qui ne prend pas en charge la lecture de sons simultanés. La création de plusieurs instances de SoundPlayer ne vous aidera pas.

Il existe de nombreuses options, dont la plupart impliquent l’implémentation d’une grande partie de l’API de bas niveau dans la bibliothèque audio native de Windows ou dans DirectSound (notez que ni l’un ni l’autre ne sont en C # et nécessitent beaucoup de code interop)

L’option la plus simple serait de dépendre de Windows Media Player pour lire l’audio pour vous.

Ajouter une référence à “C: \ Windows \ System32 \ wmp.dll”

puis utiliser

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

Remarque: la lecture commence immédiatement après la définition de la propriété URL.

L’inconvénient de cette approche est votre confiance dans le lecteur multimédia pour que votre application fonctionne correctement. Sur le dessus, vous pouvez utiliser n’importe quel support de lecteur de format de fichier.

http://msdn.microsoft.com/en-us/library/dd562851%28v=VS.85%29.aspx cet article peut vous aider Si vous avez besoin d’un chemin d’access absolu au fichier, vous pouvez utiliser le code suivant

 ssortingng soundFile = Path.Combine(Directory.GetCurrentDirectory() + "file.wav");