Escuchar música desde Excel con el control WindowsMediaPlayer1

El objetivo principal de este Post no es mostrar un reproductor de música en Excel, cosa que sería algo extensa de desarrollar por todo lo que implicaría los diferentes tipos de archivos de música y listas de reprodución.

El objetivo de este Post es mostrar como Excel puede manipular archivos de sonido mediante el control WindowsMediaPlayer, disponible en la librería de controles de Windows.

Ver Video Reproducir archivos de audio en Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Al momento de insertar el control de Windows Media Player, ya podemos disponer de todas sus propiedades y métodos, como se muestra en la imagen.

image

Cómo funciona

El formulario contiene un ListBox donde se contendrá todos los archivos de audio en formato MP3 y WMA de la carpeta y sucarpetas que se elijan.

Posteriormente los botones de Anterior, Reproducir/Pausa, Parar y Siguiente se activarán para cumplir con las funciones de un reproductor de música.

En la parte inferior se mostrará el Título, artista, álbum, ubicación del archivo, género y duración de la canción. Aunque se podrán mostrar más etiquetas dependiendo de lo que se desee ver, tales como:

Sub Test()
    With frmAudio
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Name")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("author")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Title")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Album")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("copyright")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Artist")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Genre")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Bitrate") / 1000 & " kbps"
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("Abstract")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("bitRate")
        .WindowsMediaPlayer1.currentMedia.getItemInfo ("duration")
    End With
End Sub

Formulario en ejecución

image

Código del formulario

Private Sub btnAnterior_Click()
    On Error Resume Next
    Me.ListBox1.ListIndex = Me.ListBox1.ListIndex - 1
    Call Reproducir
    On Error GoTo 0
End Sub
'
Private Sub btnParar_Click()
    Me.WindowsMediaPlayer1.Controls.stop
    Me.btnReproducir.Caption = "Reproducir"
End Sub
'
Private Sub btnReproducir_Click()
    Items = Me.ListBox1.ListCount
    Cuenta = 0
    For i = 0 To Items - 1
        If Me.ListBox1.Selected(i) Then
            Cuenta = Cuenta + 1
        End If
    Next i
'
    If Cuenta = 0 Then
        Me.ListBox1.ListIndex = Me.ListBox1.ListIndex + 1
        Call Reproducir
    Else
        If Me.WindowsMediaPlayer1.playState = wmppsPaused Then
            Me.WindowsMediaPlayer1.Controls.Play
            Me.btnReproducir.Caption = "Pausa"
        Else
            If Me.WindowsMediaPlayer1.playState = wmppsPlaying Then
                Me.WindowsMediaPlayer1.Controls.pause
                Me.btnReproducir.Caption = "Reproducir"
            Else
                Call Reproducir
            End If
        End If
    End If
End Sub
'
Private Sub btnSiguiente_Click()
    On Error Resume Next
    Me.ListBox1.ListIndex = Me.ListBox1.ListIndex + 1
    Call Reproducir
    On Error GoTo 0
End Sub
'
Private Sub CommandButton1_Click()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = Application.DefaultFilePath & "  "
        .Title = "EXCELeINFO - Seleccionar carpeta"
        .Show
        If .SelectedItems.Count = 0 Then
        Else
            Me.txtRuta.Value = .SelectedItems(1)
            frmAudio.ListBox1.Clear
            Call Listar
        End If
    End With
    Call EstadoBotones
End Sub

Sub Listar()
    If Me.txtRuta.Value = "" Then
        MsgBox "Debe seleccionar una ruta.", vbExclamation, AddIn
    Else
        Call ListFiles
    End If
End Sub
'
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Call Reproducir
    Me.btnReproducir.Caption = "Pausa"
End Sub
'
Private Sub UserForm_Initialize()
    Call EstadoBotones
    With Me
        .WindowsMediaPlayer1.Visible = False
        .lblTrack.Visible = False
        .lblTipo.Visible = False
        .lblUbicacion.Visible = False
        .ListBox1.ColumnWidths = "0 pt;170 pt;100 pt;200 pt"
    End With
End Sub

El código completo se podrá consultar dentro del mismo archivo.

:: Descargar EXCELeINFO – escuchar música en Excel con WindowsMediaPlayer1.xlsm

You may also like...