Partager via


Création du contrôle Lecteur multimédia Windows par programmation

[La fonctionnalité associée à cette page, Lecteur multimédia Windows SDK, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer. MediaPlayer a été optimisé pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer au lieu de Lecteur multimédia Windows SDK, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Lorsque vous ajoutez le contrôle Lecteur multimédia Windows à un formulaire à partir de la boîte à outils, un objet de la classe AxWMPLib.AxWindowsMediaPlayer est créé. Cette classe wrapper offre au lecteur toutes les fonctionnalités d’un contrôle ActiveX, y compris l’accès aux propriétés d’interface utilisateur telles que l’emplacement et la taille.

Si vous n’avez pas besoin des propriétés exposées par AxWindowsMediaPlayer, ou si votre application n’a pas d’interface utilisateur graphique, vous pouvez créer un contrôle Lecteur par programmation. Dans ce cas, vous créez un objet de la classe WMPLib.WindowsMediaPlayer .

Notes

Étant donné que l’objet WindowsMediaPlayer n’est pas encapsulé en tant que contrôle ActiveX, il n’a aucune propriété héritée de System.Windows.Forms.Control. Par conséquent, la propriété Controls n’est pas renommée en CtlControls, comme dans AxWindowsMediaPlayer.

 

Pour créer le contrôle Lecteur multimédia Windows par programmation, vous devez d’abord ajouter une référence à wmp.dll, qui se trouve dans le dossier \Windows\system32. L’ajout de cette référence crée WMPLib.dll dans votre dossier de projet, et une référence à WMPLib s’affiche dans Explorateur de solutions.

L’exemple de code suivant, qui fait partie d’une classe Form1, montre comment créer un objet Player et lire un fichier. Lorsque la lecture se termine ou si le fichier ne peut pas être lu, le formulaire est fermé.

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();
}


Incorporation du contrôle Lecteur multimédia Windows dans une solution .NET Framework