Home All Groups Group Topic Archive Search About

playing one sound after another in .NET...

Author
14 Mar 2006 1:22 AM
Ben Callister
hello-

i need to play a .WAV file and then programmatically play another .WAV file
after the first one has finished playing. ideally, i dont want to require
DirectX be installed on the machine. i am currently using the
System.Media.SoundPlayer class for playback and hope to not have to wonder
too far beyond this to implement this feature. is there a simple API call
and/or technique that will do the trick?!?

a code sample would be much appreciated (if appropriate).

thank you,

ben callister

Author
14 Mar 2006 6:20 AM
Peter Huang" [MSFT]
Hi

First we define a file list in fs string array, here we defined two file
for demostration.

And then we create another thread to play the sound.

        string[] fs = new string[]{@"C:\Program Files\MSN
Messenger\phone.wav",
        @"C:\Program Files\MSN Messenger\outgoing.wav"};

        void ThreadProc()
        {
            SoundPlayer sp = new SoundPlayer();
            sp.LoadCompleted += new
AsyncCompletedEventHandler(sp_LoadCompleted);
            foreach (string f in fs)
            {
                sp.SoundLocation = f;
                sp.Load();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(new ThreadStart(ThreadProc));
            t.Start();
        }

        void sp_LoadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            SoundPlayer p = sender as SoundPlayer;
            if (p != null)
            {
                Debug.WriteLine("Play " + p.SoundLocation);
                p.PlaySync();
            }
        }
Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

AddThis Social Bookmark Button