Reproductor de MP3 en C#

Esta aplicación usa el OCX de Windows Media Player 9 mediante la agregación de una referencia en el proyecto (el OCX se encuentra en la lista de objetos COM). En esta aplicación el OCX se muestra al usuario y se usan sus propios botones de control, por lo que se necesita poco código para que funcione. Para reproducir el programa es necesario tener instalado Windows Media Player 9.


Este ejercicio muestra cómo usar el control ActiveX de Windows Media Player 9 incluyéndolo en una aplicación de Visual Basic .NET. Este control ActiveX nos proporciona funcionalidades de reproducción de archivos multimedia (mp3, wav, wma, avi, etc...) sin que tengamos que crear código específico para esas funciones.

Pasos para crear el ejercicio:

1- Instalar los programas necesarios:

 — Microsoft Visual Basic .NET y Windows.NET Framework Software Development Kit (SDK): al instalar Visual Basic .NET se suele instalar también Windows.NET Framework Software Development Kit (SDK).
 — Windows Media Player 9 Series: se trata de la versión a la que se refiere este ejercicio, versiones anteriores a la 9 no funcionarán adecuadamente.
 — Windows Media Player 9 Series SDK, necesario para el desarrollo del programa, además contiene documentación de referencia, ejemplos de código, utilidades...

2 - Añadir el control ActiveX al proyecto de Visual Basic .NET:

— en el cuadro de herramientas, mostrar la pestaña "Componentes".
— con el menú contextual "Agregar o quitar componentes" abrimos el diálogo "Personalizar cuadro de herramientas".
— en la pestaña "Componentes COM" buscamos y marcamos "Windows Media Player". Si no apareciese en la lista de componentes, con el botón "Examinar" navegamos en busca de la librería wmp.dll (suele estar en el directorio system32).
— de esa manera se añade un elemento nuevo en el cuadro de herramientas, llamado Windows Media Player, que permite ser incorporado al formulario como cualquier otra herramienta, bajo el nombre de AxWindowsMediaPlayer1, este nombre puede cambiarse por otro más útil, en el ejercicio que nos ocupa se denomina ocxPlayer y así aparece en el código.

3 - En el cuadro OpenFileDialog1 se filtran los archivos mediante 3 extensiones: MP3, AVI y M3U (listas de reproducción de Wimamp), pero puedes ajustar estos filtros a tu gusto.

4 - Al usar el menú "Generar solución" tendremos en la carpeta correspondiente (por defecto \bin) 3 archivos:
ejecutable de la aplicación (ejemplo: MP3 Player.exe).
— las librerías AxInterop.WMPLib.dll y Interop.WMPLib.dll.
Es necesario tener los 3 archivos juntos en la misma carpeta para que el programa funcione adecuadamente.

5 - La manera de evitar la necesidad de las 2 librerías nombradas en el punto anterior sería instalando el PIA (primary interop assembly) de Windows Media Services en la Global Assembly Cache (GAC) y registrando después la librería mediante RegSvr32. Aunque hay documentación al respecto (ver este artículo de Microsoft), es un tema complejo que todavía no he sido capaz de solucionar.

Pulsa aquí para ver el código completo en C#.