VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) Y

by Matthew Ralston (1 Submission)
Category: Sound/MP3
Compatability: Visual Basic 5.0
Difficulty: Unknown Difficulty
Originally Published: Tue 28th March 2000
Date Added: Mon 8th February 2021
Rating: (1 Votes)

Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) You should put all the code below (the

API Declarations


' ~~~~~~~~~~~~~~~~
'
' Declare As follows:
'
' Dim MMPlayer As New clsMultimedia
'
'
' Properties:
'
' Filename (String The media file currently open)
' Wait (True/False If the code should pause until until the file has finished playing)
' Length (Integer The length (in seconds?) of the media file)
' Position (Integer The position of the 'playback head')
' Status (String What's happening to the media file...playing, stopped etc.)
'
'
'
'
'
' Methods:
'
' mmOpen(Filename) (Open a media file specified by "Filename")
' mmClose() (Close the currently open media file)
' mmPlay (Plays the currently open media file)
' mmPause() (Pause the currently playing media file)
' mmStop (Stop the currently playing media file)
' mmSeek(Time) (Move the playback head to a position specified by "Time")

Option Explicit

Private sAlias As String

Private sFilename As String
Private nLength As Single

Private nPosition As Single
Private sStatus As Single
Private bWait As Boolean

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


Rate Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) Y




    Dim nReturn As Long
    
    Dim sType As String
    
    If sAlias <> "" Then
        mmClose
    End If
    
    Select Case UCase$(Right$(sTheFile, 3))
        Case "WAV"
            sType = "Waveaudio"
        Case "AVI"
            sType = "AviVideo"
        Case "MID"
            sType = "Sequencer"
        Case "MP3"
            sType = "MPegVideo"
        Case Else
            Exit Sub
    End Select
    Randomize
    sAlias = Right$(sTheFile, 3) & Minute(Now) & Second(Now) & Int(1000 * Rnd + 1)
    
    If InStr(sTheFile, " ") Then sTheFile = Chr(34) & sTheFile & Chr(34)
    nReturn = mciSendString("Open " & sTheFile & " ALIAS " & sAlias & " TYPE " & sType & " wait", "", 0, 0)
    
End Sub

Public Sub mmClose()

    Dim nReturn As Long
    
    If sAlias = "" Then Exit Sub
    
    nReturn = mciSendString("Close " & sAlias, "", 0, 0)
    sAlias = ""
    sFilename = ""
    
End Sub

Public Sub mmPause()

    Dim nReturn As Long
    
    If sAlias = "" Then Exit Sub
    
    nReturn = mciSendString("Pause " & sAlias, "", 0, 0)
    
End Sub

Public Sub mmPlay()

    Dim nReturn As Long
    
    If sAlias = "" Then Exit Sub
    
    If bWait Then
        nReturn = mciSendString("Play " & sAlias & " wait", "", 0, 0)
    Else
        nReturn = mciSendString("Play " & sAlias, "", 0, 0)
    End If
    
End Sub

Public Sub mmStop()

    Dim nReturn As Long
    
    If sAlias = "" Then Exit Sub
    
    nReturn = mciSendString("Stop " & sAlias, "", 0, 0)
    
End Sub

Public Sub mmSeek(ByVal nPosition As Single)

    Dim nReturn As Long
    
    nReturn = mciSendString("seek " & sAlias & " to " & nPosition, "", 0, 0)
    
End Sub

Property Get FileName() As String
    
    FileName = sFilename
    
End Property

Property Let FileName(ByVal sTheFile As String)
    
    mmOpen sTheFile
    
End Property

Property Get Wait() As Boolean
    
    Wait = bWait
    
End Property

Property Let Wait(bWaitValue As Boolean)
    
    bWait = bWaitValue
    
End Property

Property Get Length() As Single

    Dim nReturn As Long, nLength As Integer
    
    Dim sLength As String * 255
    
    If sAlias = "" Then
        Length = 0
        Exit Property
    End If
    
    nReturn = mciSendString("Status " & sAlias & " length", sLength, 255, 0)
    nLength = InStr(sLength, Chr$(0))
    Length = Val(Left$(sLength, nLength - 1))
    
End Property

Property Let Position(ByVal nPosition As Single)

    mmSeek nPosition

End Property

Property Get Position() As Single

    Dim nReturn As Integer, nLength As Integer
    
    Dim sPosition As String * 255
    
    If sAlias = "" Then Exit Property
    
    nReturn = mciSendString("Status " & sAlias & " position", sPosition, 255, 0)
    nLength = InStr(sPosition, Chr$(0))
    Position = Val(Left$(sPosition, nLength - 1))
    
End Property

Property Get Status() As String

    Dim nReturn As Integer, nLength As Integer
    
    Dim sStatus As String * 255
    
    If sAlias = "" Then Exit Property
    
    nReturn = mciSendString("Status " & sAlias & " mode", sStatus, 255, 0)
    
    nLength = InStr(sStatus, Chr$(0))
    Status = Left$(sStatus, nLength - 1)
    
End Property

Download this snippet    Add to My Saved Code

Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) Y Comments

No comments have been posted about Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) Y. Why not be the first to post a comment about Plays Wave files, Midi files, AVI Video files...(and even MP3s if you've got WinAmp installed) :) Y.

Post your comment

Subject:
Message:
0/1000 characters