Programmgesteuertes Erstellen des Windows Medienwiedergabe-Steuerelements

[Das dieser Seite zugeordnete Feature Windows Medienwiedergabe SDK ist ein Legacyfeature. Es wurde von MediaPlayer ersetzt. MediaPlayer wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, nach Möglichkeit für neuen Code MediaPlayer anstelle von Windows Medienwiedergabe SDK zu verwenden. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Wenn Sie das Windows Medienwiedergabe-Steuerelement einem Formular aus der Toolbox hinzufügen, wird ein Objekt der Klasse AxWMPLib.AxWindowsMediaPlayer erstellt. Diese Wrapperklasse bietet dem Player die gesamte Funktionalität eines ActiveX-Steuerelements, einschließlich des Zugriffs auf Ui-Eigenschaften wie Location und Size.

Wenn Sie die von AxWindowsMediaPlayer verfügbar gemachten Eigenschaften nicht benötigen oder ihre Anwendung keine grafische Benutzeroberfläche aufweist, können Sie programmgesteuert ein Player-Steuerelement erstellen. In diesem Fall erstellen Sie ein Objekt der WMPLib.WindowsMediaPlayer-Klasse .

Hinweis

Da das WindowsMediaPlayer-Objekt nicht als ActiveX-Steuerelement umschlossen wird, verfügt es über keine eigenschaften, die von System.Windows.Forms.Control geerbt wurden. Daher wird die Controls-Eigenschaft nicht wie in AxWindowsMediaPlayer in CtlControls umbenannt.

 

Um das Windows Medienwiedergabe-Steuerelement programmgesteuert zu erstellen, müssen Sie zunächst einen Verweis auf wmp.dll hinzufügen, der sich im Ordner \Windows\system32 befindet. Durch das Hinzufügen dieses Verweises wird WMPLib.dll in Ihrem Projektordner erstellt, und ein Verweis auf WMPLib wird in Projektmappen-Explorer angezeigt.

Der folgende Beispielcode, der Teil einer Form1-Klasse ist, zeigt, wie ein Player-Objekt erstellt und eine Datei wiedergegeben wird. Wenn die Wiedergabe endet oder die Datei nicht wiedergegeben werden kann, wird das Formular geschlossen.

Dim WithEvents Player As WMPLib.WindowsMediaPlayer

Private Sub PlayFile(ByVal url As String)
    Player = New WMPLib.WindowsMediaPlayer
    Player.URL = url
    Player.controls.play()
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
                       Handles MyBase.Load
    ' TODO  Insert a valid path in the line below.
    PlayFile("c:\media\myaudio.wma")
End Sub

Private Sub Player_MediaError(ByVal pMediaObject As Object) _
                              Handles Player.MediaError
    MessageBox.Show("Cannot play media file.")
    Me.Close()
End Sub

Private Sub Player_PlayStateChange(ByVal NewState As Integer) _
                                   Handles Player.PlayStateChange
    If NewState = WMPLib.WMPPlayState.wmppsStopped Then
        Me.Close()
    End If
End Sub

WMPLib.WindowsMediaPlayer Player;

private void PlayFile(String url)
{
    Player = new WMPLib.WindowsMediaPlayer();
    Player.PlayStateChange += 
        new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
    Player.MediaError += 
        new WMPLib._WMPOCXEvents_MediaErrorEventHandler(Player_MediaError);
    Player.URL = url;
    Player.controls.play();
}

private void Form1_Load(object sender, System.EventArgs e)
{
    // TODO  Insert a valid path in the line below.
    PlayFile(@"c:\myaudio.wma");
}

private void Player_PlayStateChange(int NewState)
{
    if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
    {
        this.Close();
    }
}

private void Player_MediaError(object pMediaObject)
{
    MessageBox.Show("Cannot play media file.");
    this.Close();
}


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