Abspielen einer MP3-Datei in einer Windows Form-Anwendung in C#
- Verwenden Sie die C# Windows Form-Anwendung, um einen einfachen MP3-Player zu erstellen
-
Verwenden Sie die
DirectShow
-Funktionalität, um eine Mp3-Windows-Form-Anwendung inC#
zu erstellen
In diesem Beitrag wird gezeigt, wie Sie mit Ihrer C#-Windows-Formularanwendung und einem Windows Media Player einen einfachen C#-MP3-Player erstellen.
Verwenden Sie die C# Windows Form-Anwendung, um einen einfachen MP3-Player zu erstellen
Zuerst erstellen wir ein neues Windows-Formular, indem wir diesen Schritten folgen.
-
Öffnen Sie Microsoft Visual Studio 2017 oder eine aktualisierte Version.
-
Suchen Sie oben links nach
Datei
und öffnen Sie ein neues Projekt. -
Wählen Sie dann
Windows Forms Application
, benennen Sie sie und klicken Sie aufOK
. -
Nachdem Sie auf
OK
geklickt haben, erscheint ein neues leeres Fensterformular.
Jetzt entwerfen wir das Formular.
Nachdem wir das Windows-Formular erstellt haben, entwerfen wir es. Wenn Sie die Windows Media Player-Elemente nicht in Ihrer Toolbox
haben, gehen Sie wie folgt vor.
-
Klicken Sie mit der rechten Maustaste auf
Komponenten
und klicken Sie im Werkzeugkastenbereich aufElemente auswählen
, ein neues Fenster erscheint. -
Wählen Sie die Registerkarte
COM-Komponenten
und klicken Sie in der Liste auf den EintragWindows Media Player
.
Artikel hinzufügen:
-
Ziehen Sie den
Windows Media Player
per Drag & Drop auf das Formular und passen Sie seine Position an. -
Fügen Sie eine
ListBox
hinzu und nennen Sie sieAudiolist
, um die MP3-Dateiliste auszuwählen. -
Fügen Sie nun einen Button aus der Toolbox hinzu und nennen Sie ihn
ChooseButton
. Wir verwenden eine Schaltfläche, um eine Wiedergabeliste auszuwählen, und das Listenfeld zeigt eine Wiedergabeliste mit Audiodateien an, die imWindows Media Player
abgespielt werden, wenn Sie eine aus dem Listenfeld auswählen.
Wir können ein MP3-Player-Windows-Formular erstellen, indem wir diesen bestimmten Schritten folgen.
Benötigte Bibliotheken:
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;
Initialisieren Sie zunächst zwei globale Variablen vom Typ String-Array mit den Namen file
und filepath
.
string[] file, filepath;
Erstellen Sie nun eine Variable vom Typ OpenFileDialog
mit dem Namen fileOpen
, die verwendet wird, um ein Dialogfeld zum Auswählen von Dateien aus dem Speicher zu starten.
OpenFileDialog fileOpen = new OpenFileDialog();
Dann wenden wir eine Bedingung an und übergeben Folgendes als Parameter.
if (fileOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK)
Wenn dieser Ausdruck wahr ist, wird der Dateiname in der Variable file
gespeichert.
file = fileOpen.SafeFileNames;
Speichern Sie mit dem folgenden Befehl den gesamten Pfad der Datei in der Pfadvariablen mit dem Namen filepath
.
filepath = fileOpen.FileNames;
Dann verwenden wir eine for
-Schleife, um Audiodateien in ListBox
hinzuzufügen.
for (int i = 0; i < file.Length; i++) {
Audiolist.Items.Add(file[i]);
}
Generieren Sie danach ein Click-Event von ListBox
, indem Sie darauf doppelklicken.
private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {}
Dieser Code wird dann in den Body Audiolist
eingefügt. Dieser Code überträgt die Liste oder den Pfad zu dieser Datei in Ihren Windows Media Player, unabhängig davon, welchen Namen Sie ihr in der ListBox
geben.
private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {
axWindowsMediaPlayer1.URL = filepath[Audiolist.SelectedIndex];
}
Der Quellcode zum Erstellen eines einfachen C#-MP3-Players mit Ihrer C#-Windows-Formularanwendung und einem Windows Media Player ist unten aufgeführt.
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];
}
}
}
Verwenden Sie die DirectShow
-Funktionalität, um eine Mp3-Windows-Form-Anwendung in C#
zu erstellen
Verwenden Sie die DirectShow
-Funktionalität, um eine Mp3-Windows-Formularanwendung mit einem Windows Media Player zu erstellen.
Tlbimp
wandelt Typdefinitionen in einer COM-Typbibliothek in vergleichbare Definitionen in einer ausführbaren Assemblierung für eine gemeinsame Sprache um.
Die Ausgabe von Tlbimp.exe
ist eine Binärdatei (eine Assembly) mit Laufzeitmetadaten für die in der ursprünglichen Typbibliothek deklarierten Typen.
Um QuartzTypeLib.dll
zu erstellen, gehen Sie wie folgt vor.
-
Führen Sie zuerst das Tool
tlbimp
aus. -
Führen Sie
TlbImp.exe %windir%\system32\quartz.dll
aus (Dieser Ort oder dieses Verzeichnis kann von Gerät zu Gerät unterschiedlich sein.) -
Die Ausgabe wäre
QuartzTypeLib.dll
. -
Im
Solution Explorer
mit der rechten Maustaste auf den Projektnamen klicken, dann den MenüpunktHinzufügen
und dannReferenz
wählen. Es fügt Ihrem ProjektQuartzTypeLib.dll
als COM-Referenz hinzu. -
Erweitern Sie
References
in Ihrem Projekt und suchen Sie nach der ReferenzQuartzTypeLib
. Ändern SieEmbed Interop Types
auf false, indem Sie mit der rechten Maustaste darauf klicken und Eigenschaften auswählen. -
Deaktivieren Sie die Einstellung
32-Bit bevorzugen
in den Projekteinstellungen. Erstellen Sie die Registerkarte, wenn Sie die Ausnahmen nicht erhalten möchten.
Sie können diesen Quellcode verwenden, um eine Mp3-Windows-Formularanwendung zu erstellen.
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