Ich habe mit einer Win Forms-Anwendung eine Art Tetris-Spiel in C# erstellt. Ich möchte, dass das Programm eine .wav-Datei während des Spiels und eine weitere kurze .wav-Datei nur gelegentlich, aber parallel zum "main" -Sound abspielt.Abspielen von zwei (oder mehr) .wav-Sounds in einer WindowForms-Anwendung
ich am Anfang erklärt:
SoundPlayer sp;
SoundPlayer sp2;
Dann im Formload Ereignis:
private void Form1_Load(object sender, EventArgs e)
{
...
sp2 = new SoundPlayer(".../tetris.wav");
sp2.PlayLooping();
...
}
Dann so weit wie eine Linie der Blöcke verschwinden ich die Bombe-Ton schießen wollen:
sp = new SoundPlayer(".../bomb.wav");
sp.Play();
Das Problem ist: Wenn der zweite Ton ausgelöst wird, hörte der erste (Haupt-) Ton auf. Ich denke, das ist ein Thread-Problem, aber ich weiß nicht, wie ich das lösen soll.
Danke, Filippo
Sie können [async/await] (http: // www. Dnetnetperls.com/async) oder eine ältere Alternative ist [backgroundworker] (http://www.dotnetperls.com/backgroundworker). – Arman
@ user3283415 hat meine Antwort Ihr Problem gelöst? –
Mögliches Duplikat von [gleichzeitig 2 Sounds abspielen] (http://stackoverflow.com/questions/4740262/playing-2-sounds-together-at-same-time) – DonBoitnott