Been working on this MP3 Player for a bit of time, trying to figure out how to get the listbox to shuffle or randomize play on a button click. Have looked high and low and have tried many ways, but to no avail! LOL..seems it is a deeply regarded secret! hehehehee
Imports WMPLib
Public Class frmMain
Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub ofd_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ofd.FileOk
End Sub
#Region "ListBoxes"
Private Sub Listbox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Listbox1.SelectedIndexChanged
End Sub
Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
Listbox1.SelectedIndex = ListBox2.SelectedIndex
End Sub
#End Region
#Region "Timers"
Private Sub TmrUpdateInfo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrUpdateInfo.Tick
Try
If wmp.playState = WMPLib.WMPPlayState.wmppsPlaying Then
lblTrackInfo.Text = "Now Playing:...." + wmp.currentMedia.name + Environment.NewLine + "Time:..." + wmp.Ctlcontrols.currentPositionString + "/" + wmp.currentMedia.durationString
Else
lblTrackInfo.Text = "Not Playing...."
End If
Catch ex As Exception
MsgBox("An Error Occured!" + Environment.NewLine + ex.Message.ToString, MsgBoxStyle.Critical + MsgBoxStyle.MsgBoxSetForeground)
End Try
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If CheckBox1.Checked = True Then
If wmp.playState = WMPPlayState.wmppsPlaying = True Then
ElseIf wmp.playState = WMPPlayState.wmppsStopped = True Then
Listbox1.SelectedIndex = Listbox1.SelectedIndex + 1
ListBox2.SelectedIndex = ListBox2.SelectedIndex + 1
wmp.URL = Listbox1.SelectedItem
ElseIf CheckBox1.Checked = False Then
If wmp.playState = WMPPlayState.wmppsPlaying = False Then
Listbox1.SelectedIndex = Listbox1.SelectedIndex - 1
ListBox2.SelectedIndex = ListBox2.SelectedIndex - 1
wmp.URL = Listbox1.SelectedItem
End If
End If
End If
End Sub
#End Region
#Region "Button Events"
Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
If Listbox1.Items.Count = 0 = True Then
MsgBox("Nothing To Play", MsgBoxStyle.Critical, "Nothing To Play!")
Else
wmp.URL = Listbox1.SelectedItem
End If
End Sub
Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
wmp.Ctlcontrols.stop()
End Sub
Private Sub btnUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUp.Click
wmp.settings.volume = wmp.settings.volume + 10
End Sub
Private Sub btnDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDown.Click
wmp.settings.volume = wmp.settings.volume - 10
End Sub
Private Sub btnMute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMute.Click
If wmp.settings.volume = wmp.settings.mute() Then
wmp.settings.volume = 10
Else
wmp.settings.volume = wmp.settings.mute()
End If
End Sub
Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click
Listbox1.SelectedIndex = Listbox1.SelectedIndex + 1
ListBox2.SelectedIndex = ListBox2.SelectedIndex + 1
End Sub
Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click
Listbox1.SelectedIndex = Listbox1.SelectedIndex - 1
ListBox2.SelectedIndex = ListBox2.SelectedIndex - 1
End Sub
Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click
Listbox1.Items.Remove(Listbox1.SelectedItem)
ListBox2.Items.Remove(ListBox2.SelectedItem)
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
Listbox1.Items.Clear()
ListBox2.Items.Clear()
End Sub
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
Dim ofd As New OpenFileDialog
ofd.Multiselect = True
ofd.ShowDialog()
For I As Integer = 0 To ofd.FileNames.Count - 1
Listbox1.Items.Add(ofd.FileNames(I))
ListBox2.Items.Add(ofd.SafeFileNames(I))
Next
If Listbox1.Items.Count = 0 = True Then
MsgBox("Nothing To Play!", MsgBoxStyle.Critical, "File Error!")
Else
Listbox1.SelectedIndex = 0
ListBox2.SelectedIndex = 0
End If
End Sub
#End Region
End Class
I am also having trouble with a pause button. the standard pause code will pause but then upon trying to play from a paused states, makes the song start over again LOL..as you will notice I do not have a pause button in the code nor do I have a "shuffle" button in the code cuz i am to the point of ripping my hair out over these two issues LOL..that for now those 2 have been removed..
anyway, thank you for any help you can give me before I am completely bald!! heheheee