Lecture d'un fichier MP3 dans une application Windows Form en C#

Muhammad Zeeshan 12 octobre 2023
  1. Utilisez l’application C# Windows Form pour créer un lecteur MP3 simple
  2. Utiliser la fonctionnalité DirectShow pour créer une application de formulaire Windows MP3 en C#
Lecture d'un fichier MP3 dans une application Windows Form en C#

Cet article montrera comment créer un simple lecteur mp3 C# à l’aide de votre application de formulaire Windows C# et d’un lecteur Windows Media.

Utilisez l’application C# Windows Form pour créer un lecteur MP3 simple

Tout d’abord, nous allons créer un nouveau formulaire Windows en suivant ces étapes.

  • Ouvrez Microsoft Visual Studio 2017 ou une version mise à jour.
  • Dans le coin supérieur gauche, recherchez Fichier et ouvrez un nouveau projet.
  • Choisissez ensuite Application Windows Forms, nommez-la et cliquez sur OK.
  • Après avoir cliqué sur OK, une nouvelle fenêtre de formulaire vide apparaîtra.

Maintenant, nous allons concevoir le formulaire.

Après avoir créé le formulaire Windows, nous allons le concevoir. Si vous n’avez pas les éléments Windows Media Player dans votre boîte à outils, suivez ces étapes.

  • Faites un clic droit sur Composants et cliquez sur Choisir des éléments dans la zone de la boîte à outils, une nouvelle fenêtre apparaîtra.
  • Sélectionnez l’onglet Composants COM et cliquez sur l’élément Windows Media Player dans la liste.

Ajout d’éléments :

  • Faites glisser et déposez le Windows Media Player sur le formulaire, puis ajustez sa position.
  • Ajoutez une ListBox et nommez-la Audiolist pour choisir la liste des fichiers mp3.
  • Ajoutez maintenant un bouton de la boîte à outils et nommez-le ChooseButton. Nous utilisons un bouton pour choisir une liste de lecture, et la liste déroulante affichera une liste de lecture de fichiers audio qui seront lus dans Windows Media Player lorsque vous en sélectionnez un dans la liste.

Nous pouvons créer un formulaire Windows pour lecteur MP3 en suivant ces étapes particulières.

Bibliothèques requises :

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;

Tout d’abord, initialisez deux variables globales de type tableau de chaînes nommées file et filepath.

string[] file, filepath;

Créez maintenant une variable de type OpenFileDialog nommée fileOpen, qui servira à lancer une boîte de dialogue de sélection de fichiers dans le stockage.

OpenFileDialog fileOpen = new OpenFileDialog();

Ensuite, nous appliquerons une condition et passerons les éléments suivants en tant que paramètres.

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

Le nom du fichier sera enregistré dans la variable file si cette expression est vraie.

file = fileOpen.SafeFileNames;

En utilisant la commande ci-dessous, enregistrez le chemin complet du fichier dans la variable filepath.

filepath = fileOpen.FileNames;

Ensuite, nous utiliserons une boucle for pour ajouter des fichiers audio dans ListBox.

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

Après cela, générez un événement de clic de ListBox en double-cliquant dessus.

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

Ce code est ensuite collé dans le corps Audiolist. Ce code transférera la liste ou le chemin vers ce fichier dans votre Windows Media Player, quel que soit le nom que vous lui donnerez dans la ListBox.

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

Le code source permettant de créer un simple lecteur mp3 C# à l’aide de votre application de formulaire Windows C# et d’un lecteur Windows Media est présenté ci-dessous.

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];
    }
  }
}

Utiliser la fonctionnalité DirectShow pour créer une application de formulaire Windows MP3 en C#

Utilisez la fonctionnalité DirectShow pour créer une application de formulaire Windows MP3 avec un lecteur Windows Media.

Tlbimp transforme les définitions de type dans une bibliothèque de types COM en définitions comparables dans un assembly exécutable pour un langage commun.

La sortie de Tlbimp.exe est un fichier binaire (un assemblage) avec des métadonnées d’exécution pour les types déclarés dans la bibliothèque de types d’origine.

Pour créer QuartzTypeLib.dll, suivez ces étapes.

  • Exécutez d’abord l’outil tlbimp.
  • Exécutez TlbImp.exe %windir%\system32\quartz.dll (Cet emplacement ou répertoire peut différer d’un appareil à l’autre)
  • La sortie serait QuartzTypeLib.dll.
  • Cliquez avec le bouton droit de la souris sur le nom du projet dans Explorateur de solutions, puis sélectionnez l’élément de menu Ajouter puis Référence. Il ajoutera QuartzTypeLib.dll à votre projet en tant que référence COM.
  • Développez References dans votre projet et recherchez la référence QuartzTypeLib. Remplacez Embed Interop Types par false en cliquant dessus avec le bouton droit de la souris et en sélectionnant les propriétés.
  • Désactivez le paramètre Préférer 32 bits dans les paramètres du projet. Build tab si vous ne voulez pas obtenir les exceptions.

Vous pouvez utiliser ce code source pour créer une application de formulaire MP3 Windows.

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