I was on youtube looking at some code to make a custom media player, I tried to contact a few people on this but no replies back so I figured I would try here. What I need to do is figure out 2 things,
1.) Need help in having the display of songs load up in Form1_Load as an array displaying the songs in a list as in 1.) song1, 2.) song2, 3.) song3, etc etc. So the songs are numbered 1-100 or whatever number of songs there is.
2.) I need the music to be displayed on Form1_Load as safefilenames and not the full URL of the songs.
Right now the playlist is saved as a .txt file with the URL of the songs in the .txt, Then its loaded back up from the same .txt file every time the program is loaded after playlist is saved. I was thinking along the line of having 2 listbox's one with the full URL hidden and then the other one with the filename only, But no way of knowing how to do this when loading using the StreamReader. Any ideas? Code below.
1.) Need help in having the display of songs load up in Form1_Load as an array displaying the songs in a list as in 1.) song1, 2.) song2, 3.) song3, etc etc. So the songs are numbered 1-100 or whatever number of songs there is.
2.) I need the music to be displayed on Form1_Load as safefilenames and not the full URL of the songs.
Right now the playlist is saved as a .txt file with the URL of the songs in the .txt, Then its loaded back up from the same .txt file every time the program is loaded after playlist is saved. I was thinking along the line of having 2 listbox's one with the full URL hidden and then the other one with the filename only, But no way of knowing how to do this when loading using the StreamReader. Any ideas? Code below.
Code:
Imports System.IO
Imports WMPLib
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ComboBox1.Text = My.Settings.Volume
If My.Computer.FileSystem.FileExists(Application.StartupPath & "\playlist1.txt") Then
Dim reader As New IO.StreamReader(Application.StartupPath & "\playlist1.txt")
Try
Do
playlist1.Items.Add(reader.ReadLine)
Loop
Catch ex As Exception
reader.Close()
playlist1.SelectedIndex = 0
If My.Settings.AutoPlay = True Then
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
CheckBox2.Checked = True
End If
If My.Settings.Repeat = True Then
CheckBox1.Checked = True
End If
End Try
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
AxWindowsMediaPlayer1.settings.volume = ComboBox1.SelectedItem
My.Settings.Volume = ComboBox1.SelectedItem
My.Settings.Save()
Try
Dim itemno As Integer
itemno = playlist1.SelectedIndex
If My.Settings.RepeatOne = True Then
If Me.AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Start()
End If
Else
If My.Settings.Shuffle = True Then
If Me.AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
Dim total As Integer = playlist1.Items.Count
Dim random As Integer = Math.Floor(total * Rnd())
Me.playlist1.SelectedIndex = random
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Start()
End If
Else
If Me.AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
Me.playlist1.SelectedIndex = itemno + 1
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Start()
End If
End If
End If
Catch ex As Exception
If My.Settings.Repeat = True Then
playlist1.SelectedIndex = "0"
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
CheckBox1.Checked = True
Else
AxWindowsMediaPlayer1.URL = ""
playlist1.SelectedIndex = "0"
End If
End Try
End Sub
Private Sub Addtoplaylist1_Click(sender As Object, e As EventArgs) Handles Addtoplaylist1.Click
OpenFileDialog1.Multiselect = True
OpenFileDialog1.ShowDialog()
For Each s As String In OpenFileDialog1.FileNames
playlist1.Items.Add(s)
Next
Me.playlist1.SelectedIndex = Me.playlist1.SelectedIndex + 1
End Sub
Private Sub Deletefromplaylist1_Click(sender As Object, e As EventArgs) Handles Deletefromplaylist1.Click
Try
playlist1.Items.Remove(playlist1.SelectedItem)
playlist1.SelectedIndex = "0"
Catch ex As Exception
playlist1.Items.Remove(playlist1.SelectedItem)
playlist1.SelectedIndex = "-1"
End Try
End Sub
Private Sub square_Click(sender As Object, e As EventArgs) Handles square.Click
Timer1.Stop()
AxWindowsMediaPlayer1.URL = ""
playlist1.SelectedIndex = "0"
End Sub
Private Sub lasttrack_Click(sender As Object, e As EventArgs) Handles lasttrack.Click
If My.Settings.RepeatOne = True Then
If Me.AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Start()
End If
Else
If My.Settings.Shuffle = True Then
Dim total As Integer = playlist1.Items.Count
Dim random As Integer = Math.Floor(total * Rnd())
Me.playlist1.SelectedIndex = random
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Stop()
AxWindowsMediaPlayer1.URL = ""
Me.playlist1.SelectedIndex = playlist1.SelectedIndex - 1
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
End If
End If
End Sub
Private Sub nexttrack_Click(sender As Object, e As EventArgs) Handles nexttrack.Click
If My.Settings.RepeatOne = True Then
If Me.AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Start()
End If
Else
If My.Settings.Shuffle = True Then
Dim total As Integer = playlist1.Items.Count
Dim random As Integer = Math.Floor(total * Rnd())
Me.playlist1.SelectedIndex = random
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
Timer1.Stop()
AxWindowsMediaPlayer1.URL = ""
Me.playlist1.SelectedIndex = playlist1.SelectedIndex + 1
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
End If
End If
End Sub
Private Sub saveplaylist1_Click(sender As Object, e As EventArgs) Handles saveplaylist1.Click
Dim count As Integer = -1
Dim writer As New IO.StreamWriter(Application.StartupPath & "\playlist1.txt")
Dim current As Integer = playlist1.SelectedIndex
Try
Do Until count = playlist1.Items.Count
playlist1.SelectedIndex = count + 1
writer.WriteLine(playlist1.SelectedItem)
count = count + 1
Loop
Catch ex As Exception
writer.Close()
playlist1.SelectedIndex = current
End Try
End Sub
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
My.Settings.AutoPlay = True
Else
My.Settings.AutoPlay = False
End If
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
My.Settings.Repeat = True
Else
My.Settings.Repeat = False
If CheckBox3.Checked = True Then
CheckBox3.Checked = False
My.Settings.RepeatOne = False
End If
End If
End Sub
Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
If CheckBox1.Checked = True Then
If CheckBox3.Checked = True Then
My.Settings.RepeatOne = True
Else
My.Settings.RepeatOne = False
End If
Else
CheckBox3.Checked = False
My.Settings.RepeatOne = False
End If
End Sub
Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.CheckedChanged
If CheckBox4.Checked = True Then
My.Settings.Shuffle = True
Else
My.Settings.Shuffle = False
End If
End Sub
Private Sub playlist1_DoubleClick(sender As Object, e As EventArgs) Handles playlist1.DoubleClick
Try
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Catch ex As Exception
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
End Try
End Sub
Private Sub play_Click(sender As Object, e As EventArgs) Handles play.Click
If My.Settings.Shuffle = True Then
Dim total As Integer = playlist1.Items.Count
Dim random As Integer = Math.Floor(total * Rnd())
Me.playlist1.SelectedIndex = random
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
Else
AxWindowsMediaPlayer1.URL = playlist1.SelectedItem
Timer1.Start()
End If
End Sub
Private Sub pause_Click(sender As Object, e As EventArgs) Handles pause.Click
If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsUndefined Or AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsStopped Then
AxWindowsMediaPlayer1.Ctlcontrols.play()
pause.Image = My.Resources.pause
ElseIf AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsPaused Then
AxWindowsMediaPlayer1.Ctlcontrols.play()
pause.Image = My.Resources.pause
Else
AxWindowsMediaPlayer1.Ctlcontrols.pause()
pause.Image = My.Resources.playpause
End If
End Sub
End Class