Home
Search
 
What's New
Index
Books
Links
Q & A
Newsletter
Banners
 
Feedback
Tip Jar
 
C# Helper...
 
XML RSS Feed
Follow VBHelper on Twitter
 
 
 
MSDN Visual Basic Community
 
 
 
 
 
TitlePlay a WAV file asynchronously
Keywordssound, WAV, WaveAudio, MMC, asynchronously
CategoriesMultimedia, Controls
 
Use the MMC control. Set it's Wait property to False (the default) before executing the Play command. The program continues executing while the file plays so you can click other buttons and so forth. In particular, you can stop the MMC from playing the WAV file.
 
Private Sub Form_Load()
    ' Prepare the MCI control for WaveAudio.
    MMControl1.Notify = False
    MMControl1.Wait = True
    MMControl1.Shareable = False
    MMControl1.DeviceType = "WaveAudio"
    MMControl1.TimeFormat = mciFormatMilliseconds
End Sub

' Open the device and play the sound.
Private Sub cmdPlay_Click()
    ' Disable this button.
    cmdPlay.Enabled = False

    ' Set the file name.
    MMControl1.FileName = txtFilename.Text

    ' Open the MCI device.
    MMControl1.Wait = True
    MMControl1.Command = "Open"

    ' Play the sound without waiting.
    MMControl1.Notify = True
    MMControl1.Wait = False
    MMControl1.Command = "Play"

    ' Enable the timer.
    tmrSound.Enabled = True
    cmdStop.Enabled = True
End Sub

Private Sub cmdStop_Click()
    ' Stop playing.
    MMControl1.Wait = True
    MMControl1.Command = "Stop"
End Sub

Private Sub Form_Load()
    ' Prepare the MCI control for WaveAudio.
    MMControl1.Notify = False
    MMControl1.Wait = True
    MMControl1.Shareable = False
    MMControl1.DeviceType = "WaveAudio"
    MMControl1.TimeFormat = mciFormatMilliseconds
End Sub

' Close the device when the sound is done.
Private Sub MMControl1_Done(NotifyCode As Integer)
    ' Close the device.
    MMControl1.Command = "Close"

    ' Disable the timer.
    tmrSound.Enabled = False
    cmdStop.Enabled = False

    ' Reenable the button.
    cmdPlay.Enabled = True
End Sub

' Display the time through the sound clip.
Private Sub tmrSound_Timer()
    lblEllapsed.Caption = Format$(MMControl1.Position)
End Sub
 
 
Copyright © 1997-2010 Rocky Mountain Computer Consulting, Inc.   All rights reserved.
  Updated