Lecture d'un fichier MP3 dans une application Windows Form en C#
- Utilisez l’application C# Windows Form pour créer un lecteur MP3 simple
-
Utiliser la fonctionnalité
DirectShow
pour créer une application de formulaire Windows MP3 enC#
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 surOK
. -
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 surChoisir 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émentWindows 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-laAudiolist
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 dansWindows 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 menuAjouter
puisRéférence
. Il ajouteraQuartzTypeLib.dll
à votre projet en tant que référence COM. -
Développez
References
dans votre projet et recherchez la référenceQuartzTypeLib
. RemplacezEmbed 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();
}
}
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