Einbetten des Windows Media Player-Steuerelements in eine C#-Projektmappe

Um die Funktionalität von Windows Media Player in einer C#-Anwendung zu verwenden, fügen Sie zunächst die Komponente einem Formular hinzu, wie unter Verwenden des Windows Media Player-Steuerelements mit Microsoft Visual Studio

In den folgenden Abschnitten wird beschrieben, wie Sie eine Anwendung erstellen, die Video wiedergeben und benutzerdefinierte Wiedergabe- und Stoppschaltflächen verwendet.

Hinzufügen des Videofensters

Fügen Sie einem Formular das Windows Media Player ActiveX-Steuerelement hinzu. Ändern Sie die Größe des Steuerelements, und platzieren Sie es an der Stelle, an der das Videofenster angezeigt werden soll.

Wählen Sie das Windows Media Player-Steuerelement aus, und ändern Sie dann die uiMode-Eigenschaft in "none". Diese Einstellung blendet die Ui-Steuerelemente aus. Wenn der Benutzer ein Video wiedergibt, wird es im Fenster angezeigt. Für reinen Audioinhalt wird eine Visualisierung angezeigt.

Hinzufügen von zwei Schaltflächen und Anpassen des Formulars

Fügen Sie dem Formular nun zwei Schaltflächen hinzu. Wählen Sie die erste Schaltfläche aus, und ändern Sie die Text-Eigenschaft in "Play". Wählen Sie die zweite Schaltfläche aus, und ändern Sie ihre Text-Eigenschaft in "Stop".

Hinzufügen des Wiedergabecodes

Doppelklicken Sie auf die Schaltfläche Wiedergeben, um das Codefenster anzuzeigen. In C# wird der folgende Code angezeigt:

private void button1_Click(object sender, System.EventArgs e)
{

}

Fügen Sie diese Zeile zwischen den beiden geschweiften Klammern hinzu:

axWindowsMediaPlayer1.URL = @"c:\mediafile.wmv";

Im vorherigen Codebeispiel ist "axWindowsMediaPlayer1" der Standardname des Windows Media Player-Steuerelements, und "c: \ mediafile.wmv" ist ein Platzhalter für den Namen des Medienelements, das Sie wiedergeben möchten. Jeder gültige Dateipfad kann verwendet werden. Das @-Symbol weist den Compiler an, umgekehrte Schrägstriche nicht als Escapezeichen zu interpretieren.

Wenn Sie den Inhalt digitaler Medien aus dem Windows Media Player SDK zur Bibliothek in Windows Media Player hinzugefügt haben, können Sie stattdessen diesen Code verwenden:

axWindowsMediaPlayer1.currentPlaylist = axWindowsMediaPlayer1.mediaCollection.getByName("mediafile");

Da die autoStart-Eigenschaft standardmäßig true ist, beginnt Windows Media Player mit der Wiedergabe, wenn Sie die currentPlaylist- oder URL-Eigenschaft festlegen.

Hinzufügen des Stoppcodes

Doppelklicken Sie auf die Schaltfläche Beenden, um das Codefenster anzuzeigen. In C# wird der folgende Code angezeigt:

private void button2_Click(object sender, System.EventArgs e)
{

}

Fügen Sie diese Zeile zwischen den beiden geschweiften Klammern hinzu:

axWindowsMediaPlayer1.Ctlcontrols.stop();

Hinweis

Der Wrapper für verwalteten Code für das Windows Media Player-Steuerelement macht das Controls-Objekt als Ctlcontrols verfügbar, um Konflikte mit der von System.Windows geerbten Controls-Eigenschaft zu vermeiden. Forms.Control.

Hinzufügen der Fehlerbehandlung

Das Windows Media Player-Steuerelement gibt keine Ausnahme aus, wenn ein Fehler wie eine ungültige URL auftritt. Stattdessen wird ein Ereignis signalisiert. Ihre Anwendung sollte fehlerereignisse behandeln, die vom Player gesendet werden.

Um einen Ereignishandler zu erstellen, öffnen Sie zunächst die Eigenschaftenfenster für das Windows Media Player-Steuerelement. Doppelklicken Sie in der Liste der Ereignisse auf MediaError. Der folgende Code wird angezeigt:

private void Player_MediaError(object sender, _WMPOCXEvents_MediaErrorEvent e)
{
}

Der folgende Code kann in die -Methode eingefügt werden, um eine minimale Fehlerbehandlungsfunktion bereitzustellen. Beachten Sie, dass Informationen zum Fehler aus dem _ WMPOCXEvents _ MediaErrorEvent-Argument abgerufen werden können.

try
// If the Player encounters a corrupt or missing file, 
// show the hexadecimal error code and URL.
{
    IWMPMedia2 errSource = e.pMediaObject as IWMPMedia2;
    IWMPErrorItem errorItem = errSource.Error;
    MessageBox.Show("Error " + errorItem.errorCode.ToString("X") 
                    + " in " + errSource.sourceURL);
}
catch(InvalidCastException)
// In case pMediaObject is not an IWMPMedia item.
{
    MessageBox.Show("Error.");
} 

Einbetten des Windows Media Player-Steuerelements in eine .NET Framework-Lösung