![]() |
Multimedia »
Audio and Video »
Multimedia
Intermediate
Simple VB.NET MIDI & Wave Play ClassBy EcoSysMIDI & Wave Player for VB.NET. |
VB.NET 1.1, Win2K, WinXP, Win2003, DirectX, VS.NET2003, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
This is a simple class to play MIDI and Wave files with your VB.NET application.
Add a new class file into your project and copy the code into it. Make a reference to DirectX7 COM-Object.
Imports System
Imports DxVBLib
Public Class SoundPlayer
' Basic Wave and MIDI Player Class for VB.net 1.1
' Requires COM-Object : DirectX7
Private Declare Function mciSendString Lib "Winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private File As String
Private m_dx As New DirectX7
Private m_ds As DirectSound
Public Sub New(ByVal strFileName As String)
Me.File = strFileName
End Sub
' To show what file is selected (if needed)
Public ReadOnly Property FileName() As String
Get
Return File
End Get
End Property
Public Function PlaySound() As Boolean
If InitAudio() = True Then
If PlayFile() = True Then
Return True
Else
Return False
End If
Else
' Audiohardware not found
' exit here
Return False
End If
End Function
Public Function StopSound() As Boolean
StopFile()
End Function
Private Function PlayFile() As Boolean
Dim lRet As Long
Try
StopFile()
lRet = mciSendString("open " & Me.File & " alias track", "", 0, 0)
lRet = mciSendString("play track", "", 0, 0)
PlayFile = (lRet = 0)
Catch ex As Exception
Return False
End Try
Return True
End Function
Public Function CloseAudio()
mciSendString("close all", 0, 0, 0)
End Function
Private Function StopFile() As Boolean
Dim lRet As Long
Try
lRet = mciSendString("stop track", "", 0, 0)
lRet = mciSendString("close track", "", 0, 0)
Return True
Catch ex As Exception
Return False
End Try
End Function
Private Function InitAudio() As Boolean
m_ds = m_dx.DirectSoundCreate("")
If Err.Number <> 0 Then
Return False
Else
Return True
End If
End Function
End Class
In your application, play a sound like this:
Dim Sound As New SoundPlayer(".\sound\testmidi.mid")
Sound.PlaySound()
or
Sound.StopSound()
to stop playing.
Sound.FileName shows the filename given to the class on declare.
I didn't test it but I'm sure that it works with DX8 or DX9 too. And always remember: this code is for the beginners to show how to play MIDI and Wave files. The class plays each file once. No loop...
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 8 Oct 2004 Editor: Smitha Vijayan |
Copyright 2004 by EcoSys Everything else Copyright © CodeProject, 1999-2009 Web22 | Advertise on the Code Project |