Abspielen einer MP3-Datei in einer Windows Form-Anwendung in C#

Muhammad Zeeshan 12 Oktober 2023
  1. Verwenden Sie die C# Windows Form-Anwendung, um einen einfachen MP3-Player zu erstellen
  2. Verwenden Sie die DirectShow-Funktionalität, um eine Mp3-Windows-Form-Anwendung in C# zu erstellen
Abspielen einer MP3-Datei in einer Windows Form-Anwendung in C#

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.
  • Wählen Sie dann Windows Forms Application, benennen Sie sie und klicken Sie auf OK.
  • 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 auf Elemente auswählen, ein neues Fenster erscheint.
  • Wählen Sie die Registerkarte COM-Komponenten und klicken Sie in der Liste auf den Eintrag Windows 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 sie Audiolist, 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 im Windows 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üpunkt Hinzufügen und dann Referenz wählen. Es fügt Ihrem Projekt QuartzTypeLib.dll als COM-Referenz hinzu.
  • Erweitern Sie References in Ihrem Projekt und suchen Sie nach der Referenz QuartzTypeLib. Ändern Sie Embed 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();
  }
}
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