Hola todos los seguidores de mi blogg en esta oportunidad les traigo una aplicación que permitirá elegir del explorador de Windows uno o varios archivos de musica y listarlos para luego reproducirlos en el reproductor de Windows.
Bien, pasare a explicar los controles que va a contener nuestra aplicación:
El primer paso es agregar el control ActiveX del reproductor WindowsMediaPlayer a nuestro proyecto. Para ello de anticlick sobre la barra de controles y luego elija la opción elegir elementos.... Una vez dentro de la pantalla pulse sobre la pestaña "Componentes COM", en ella buscamos y seleccionamos "Windows Media Player", de esta manera se añade un elemento nuevo en el cuadro de herramientas, llamado Windows Media Player el cual lo agregaremos a nuestro formulario.
El siguiente paso sera configurar las propiedades del control AxWindowsMediaPlayer1 elegimos las propiedades como se muestra en las siguientes imagenes:
6 botones: [Buscar Música][Reproducir][Detener][siguiente][Anterior][salir]
3Label,1 Listbox, 1OpenFileDialog,1Reproductor Windows Media y un timer que sera el que muestre el tiempo transcurrido de la canción.
El formulario quedara como se muestra en la siguiente imagen:
Ahora si el código Fuente:
Public Class Form1
Public tiempo As Date ' para el tiempo
transcurrido
Private posicion As Integer
Private Sub Button1_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button1.Click
OpenFileDialog1.Title = "Seleccione
uno o varios archivos..."
Me.OpenFileDialog1.InitialDirectory = "C:\MUSICA"
Me.OpenFileDialog1.Filter = "Formato
de música (*.mp3)|*.mp3|Formato de Video (*.mpg)|*.mpg"
OpenFileDialog1.RestoreDirectory
= True
OpenFileDialog1.ShowDialog()
Dim
archivos As IEnumerator
archivos = OpenFileDialog1.FileNames.GetEnumerator
ListBox1.Items.Clear()
While
archivos.MoveNext
ListBox1.Items.Add(archivos.Current)
End While
ListBox1.TopIndex = 0
Label1.Text = "Archivos
de Audio o Video = " + ListBox1.Items.Count.ToString
End Sub
Private Sub Button2_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button2.Click
AxWindowsMediaPlayer1.URL =
ListBox1.Text
AxWindowsMediaPlayer1.Ctlcontrols.play()
End Sub
Private Sub Button3_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button3.Click
AxWindowsMediaPlayer1.Ctlcontrols.stop()
End Sub
Private Sub Button6_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button6.Click
End
End Sub
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent)
Handles AxWindowsMediaPlayer1.PlayStateChange
'dependiendo del estado del reproductor
Select Case
e.newState
Case WMPLib.WMPPlayState.wmppsPlaying
' si reproduciendo
Timer1.Start()
Label2.Text =
AxWindowsMediaPlayer1.currentMedia.getItemInfo("title")
_
& Chr(13) &
AxWindowsMediaPlayer1.currentMedia.getItemInfo("author")
tiempo = Now
Label4.Text =
AxWindowsMediaPlayer1.currentMedia.durationString
Case
WMPLib.WMPPlayState.wmppsStopped ' si detenido
Label2.Text = "Sin
Reproducción..."
Label3.Text = ""
Label4.Text = ""
Timer1.Stop()
End Select
End Sub
Private Sub Timer1_Tick(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Timer1.Tick
Dim Minutos, Segundos As Integer
' Variable Segundos = diferencia en segundos entre una hora
y la hora actual
Segundos = DateDiff(DateInterval.Second,
Date.Parse(tiempo), Now)
Minutos = Segundos \ 60
'Para que no
supere 59
Segundos = Segundos - (Minutos * 60)
'Presentación formateada del tiempo transcurrido
Label3.Text = Format(Minutos, "00")
& ":" & Format(Segundos, "00")
End Sub
Private Sub Button4_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles
Button4.Click
posicion = ListBox1.SelectedIndex
If
ListBox1.GetSelected(posicion) = True Then
posicion = posicion + 1
If
posicion <= ListBox1.Items.Count Then
ListBox1.SetSelected(posicion, True)
AxWindowsMediaPlayer1.URL =
ListBox1.Items(posicion)
AxWindowsMediaPlayer1.Ctlcontrols.play()
Else
Button4.Enabled = False
Button5.Enabled = True
End If
End If
End Sub
Private Sub
ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ListBox1.SelectedIndexChanged
If ListBox1.SelectedItems.Count > 0 Then
Button2.Enabled = True
End If
End Sub
Private Sub
Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button5.Click
posicion = ListBox1.SelectedIndex
If ListBox1.GetSelected(posicion) = True Then
posicion = posicion - 1
If
posicion >= 0 Then
ListBox1.SetSelected(posicion, True)
AxWindowsMediaPlayer1.URL =
ListBox1.Items(posicion)
AxWindowsMediaPlayer1.Ctlcontrols.play()
Else
Button4.Enabled = True
Button5.Enabled = False
End
If
End If
End Sub
Private Sub Form1_Load(ByVal
sender As Object,
ByVal e As
System.EventArgs) Handles
Me.Load
Timer1.Stop()
End Sub
End
Class
OJO para q funcione la opción de agregar varias canciones o vídeos a la lista tienen que activar la opción Multiselet del OpenFileDialog1
Nuestro reproductor quedara así:




