Reproducir un archivo Mp3 en una aplicación Windows Form en C#

Muhammad Zeeshan 12 octubre 2023
  1. Use la aplicación C# Windows Form para crear un reproductor de MP3 simple
  2. Utilice la funcionalidad DirectShow para crear una aplicación Windows Form Mp3 en C#
Reproducir un archivo Mp3 en una aplicación Windows Form en C#

Esta publicación demostrará cómo crear un reproductor de mp3 C# simple usando su aplicación Windows Form C# y un Reproductor de Windows Media.

Use la aplicación C# Windows Form para crear un reproductor de MP3 simple

Primero, crearemos un nuevo formulario de Windows siguiendo estos pasos.

  • Abra Microsoft Visual Studio 2017 o una versión actualizada.
  • En la esquina superior izquierda, busque File y abra un nuevo proyecto.
  • A continuación, elija Aplicación de Windows Forms, asígnele un nombre y haga clic en Aceptar.
  • Después de hacer clic en Aceptar, aparecerá un nuevo formulario de ventana vacía.

Ahora, diseñaremos el formulario.

Después de crear el formulario de Windows, lo diseñaremos. Si no tiene los elementos de Windows Media Player en su Caja de herramientas, siga estos pasos.

  • Haga clic derecho en Componentes y haga clic en Elegir elementos en el área de la caja de herramientas, aparecerá una nueva ventana.
  • Seleccione la pestaña Componentes COM y haga clic en el elemento Reproductor de Windows Media de la lista.

Adición de elementos:

  • Arrastre y suelte Windows Media Player en el formulario, luego ajuste su posición.
  • Agregue un ListBox y asígnele el nombre Lista de audio para elegir la lista de archivos mp3.
  • Ahora agregue un botón de la caja de herramientas y asígnele el nombre ChooseButton. Estamos usando un botón para elegir una lista de reproducción, y el cuadro de lista mostrará una lista de reproducción de archivos de audio que se reproducirán en Windows Media Player cuando seleccione uno del cuadro de lista.

Podemos crear un formulario de Windows de reproductor de MP3 siguiendo estos pasos particulares.

Bibliotecas que se requieren:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

En primer lugar, inicializar dos variables globales de tipo array de cadenas llamadas file y filepath.

string[] file, filepath;

Ahora cree una variable de tipo OpenFileDialog llamada fileOpen, que se utilizará para iniciar un cuadro de diálogo para seleccionar archivos del almacenamiento.

OpenFileDialog fileOpen = new OpenFileDialog();

Luego aplicaremos una condición y pasaremos lo siguiente como parámetros.

if (fileOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK)

El nombre del archivo se guardará en la variable file si esta expresión es verdadera.

file = fileOpen.SafeFileNames;

Usando el siguiente comando, almacene la ruta completa del archivo en la variable de ruta llamada filepath.

filepath = fileOpen.FileNames;

Luego usaremos un bucle for para agregar archivos de audio en ListBox.

for (int i = 0; i < file.Length; i++) {
  Audiolist.Items.Add(file[i]);
}

Después de eso, genere un evento de clic de ListBox haciendo doble clic en él.

private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {}

Luego, este código se pega en el cuerpo Audiolista. Este código transferirá la lista o la ruta a ese archivo a tu Windows Media Player, independientemente del nombre que le des en el ListBox.

private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {
  axWindowsMediaPlayer1.URL = filepath[Audiolist.SelectedIndex];
}

El código fuente para crear un reproductor de mp3 C# simple usando su aplicación Windows Form C# y un reproductor de Windows Media se encuentra a continuación.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Mp3Player {
  public partial class Form1 : Form {
    string[] file, filepath;
    public Form1() {
      InitializeComponent();
    }
    private void ChooseButton_Click(object sender, EventArgs e) {
      OpenFileDialog fileOpen = new OpenFileDialog();
      if (fileOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
        file = fileOpen.SafeFileNames;
        filepath = fileOpen.FileNames;
        for (int i = 0; i < file.Length; i++) {
          Audiolist.Items.Add(file[i]);
        }
      }
    }
    private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {
      axWindowsMediaPlayer1.URL = filepath[Audiolist.SelectedIndex];
    }
  }
}

Utilice la funcionalidad DirectShow para crear una aplicación Windows Form Mp3 en C#

Utilice la funcionalidad DirectShow para crear una aplicación Windows Form Mp3 con un Reproductor de Windows Media.

Tlbimp transforma las definiciones de tipos en una biblioteca de tipos COM en definiciones comparables en un ensamblado ejecutable para un lenguaje común.

La salida de Tlbimp.exe es un archivo binario (un ensamblado) con metadatos de tiempo de ejecución para los tipos declarados en la biblioteca de tipos original.

Para crear QuartzTypeLib.dll, siga estos pasos.

  • Ejecute primero la herramienta tlbimp.
  • Ejecute TlbImp.exe %windir%\system32\quartz.dll (Esta ubicación o directorio puede diferir de un dispositivo a otro).
  • La salida sería QuartzTypeLib.dll.
  • Haga clic con el botón derecho del mouse en el nombre del proyecto en Solution Explorer, luego seleccione el elemento de menú Agregar y luego Referencia. Agregará QuartzTypeLib.dll a su proyecto como una referencia COM.
  • Expande Referencias en tu Proyecto y busca la referencia QuartzTypeLib. Cambie Incrustar tipos de interoperabilidad a falso haciendo clic derecho y seleccionando propiedades.
  • Desactive la configuración Preferir 32 bits en Configuración del proyecto. Pestaña de compilación si no desea obtener las Excepciones.

Puede usar este código fuente para crear una aplicación Windows Form Mp3.

using QuartzTypeLib;

public sealed class DirectShowPlayer {
  private FilgraphManager fgm;
  public void Play(string filepath) {
    FilgraphManager fgm = new FilgraphManager();
    fgm.RenderFile(filepath);
    fgm.Run();
  }
  public void Stop() {
    fgm?.Stop();
  }
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn