Constructing a Basic MP3 Player
Results 1 to 2 of 2

Thread: Constructing a Basic MP3 Player

  1. #1
    Banned
    Join Date
    May 2003
    Posts
    210

    Constructing a Basic MP3 Player

    Using the Multimedia Control in Visual Basic - Constructing a Basic MP3 Player

    Objective
    By the end of this tutorial you will know how to construct a basic MP3 player under Microsoft Visual Basic 6.0

    Scope
    This tutorial concentrates on the Microsoft Multimedia Control 6.0 and its BASIC application as an MP3 player. On a minor level, it also covers looping.

    Introduction
    The Microsoft Multimedia Control 6.0, a control in Visual Basic 6.0, is a simple yet powerful tool that can be used to construct an MP3/CD/WAV/MIDI player. It allows the user control over most aspects of the file (playback, pause, stop, etc) without the need for introducing a plethora of other command buttons and controls. At the end of this article, you will find the source code attached in a .zip

    Step 1 :: Constructing a form that can easily explore the local filesystem for MP3s.

    This is possibly the simplest, yet most overlooked step. Having a MMControl (multimedia control) is all fine and dandy, but what’s the use of it if you cannot select the files which it loads dynamically?

    i. Create a form
    ii. Add the following controls

    A Drive listbox (this will be called lstDrive)
    A Directory Listbox (this will be called lstDir)
    A File Listbox (this will be called lstFiles)

    These are all accessible from the left hand control panel in VB 6.0. Now for the code.

    Q. What do we need to accomplish?
    A. We need the directory listbox to change when the drive listbox is changed, and the file listbox (which displays the files in a directory) to change when the directory listbox changes. Im already sick of the word listbox .

    Code:
    ‘this caters for the Drive listbox changing.
    Private Sub lstDrive_Change()
    lstDir.Path = lstDrive.Drive
    End Sub
    
    ‘this caters for the directory listbox changing
    Private Sub lstDir_Change()
    lstFiles.Path = lstDir.Path
    ‘this bit isn’t necessary, but it’s a cool thing to have anyways.
    lstFiles.ToolTipText = lstFiles.ListCount & " Files in directory"
    End Sub
    We can add another bit here – we can restrict *what* files the lstFiles object displays. We accomplish this with a combobox. This will be called lstPattern.
    In the properties of lstPattern, set “Text” to *.mp3 – this will be our default value. Be sure to make *.mp3 the default value for lstFiles.Pattern also. Under “List”, add as many options as you want. The add the following code;

    Code:
    Private Sub lstPattern_Change()
    lstFiles.Pattern = lstPattern.Text
    End Sub
    Simple. Done. Out of the way

    Step 2 :: The MMControl

    Add a Microsoft Multimedia Control 6.0 to the form. This can be found by going Project > Components > Check the desired control > Click OK. It should now be accessible via the left hand control panel.
    Lets have a look at what we have so far; A form, which has a simple device to browse the local filesystem. A multimedia control, which thus far does nothing. Pretty useless at the moment.

    Q. So what exactly must I do to make this program semi-functional?
    A. Create a link between the two objects we now have. Ergo, find a way to load objects into the MMControl with the “Browser”.

    “Load?”, some of you may ask. My fault – lets have a look at how the MMControl works.

    Theory 1 :: Basic commands of the MMControl

    Before a file can be played by the MMControl, it must first be loaded. Both of these functions and more are executed with the MMControl.Command call.

    Example I; Loading a file

    Code:
    MMControl.FileName = “C:\ILoveRIAA\Random.mp3”
    ‘This sets the “target” of the .Command call to whatever is specified inside the quotes
    MMControl.Command = “open”
    ‘This loads the file that we targeted. If you look at the form, you will notice that the “Play” button on the MMControl is now active. The file can be played at any time.
    Example II; Closing a file

    Code:
    ‘This assumes that a file is “loaded”
    MMControl.Command = “close”
    ‘NB: You must close a file before you can open a new one
    So now we can open, close, and play files. Lets have a look at putting this into practice on our current form.

    Code:
    Private Sub lstFiles_DblClick()
    'this triggers when we double click the file listbox
    For x = 0 To lstFiles.ListCount - 1
        If lstFiles.Selected(x) = True Then
            'this checks for a selected file
            MMControl.Command = "close"
            MMControl.FileName = lstDir.Path & "\" & lstFiles.List(x)
            MMControl.Command = "open"
            Exit Sub
            'if it finds one, it closes the currently open file then
            'loads the selected one instead. the 'play' button should
            'now be active.
        End If
    Next x
    'Done. Press play to play.
    End Sub
    Done. No seriously, that’s it. You can go home now.

    Conclusion
    As I said, this was a very *basic* MP3 player. It can be expanded upon in numerous ways, which are simply to tedious to document here. Here are a few examples;

    Show Elapsed/Remaining times
    Add CD support
    Add volume controls
    Save your ‘sound’ directory as a home directory, so it always loads it straight into lstFiles

    If you would like any help doing such things, just say and I will be more than happy to help. This is my first tutorial, excuse the tardiness/simplicity of it.

    Regards

  2. #2
    Banned
    Join Date
    May 2003
    Posts
    210
    Gah, im really sorry for the double post but i was so concentrated on getting the formatting right (as you can tell, it is rather shocking..) that i forgot to attatch the source.

    This was an honest mistake, i tried to add it with the 'edit' button but alas, i cant.

    Sorry for the double post once again

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

 Security News

     Patches

       Security Trends

         How-To

           Buying Guides