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.
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
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