Partager via


Incorporation du contrôle Lecteur multimédia Windows dans une solution C#

[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.]

Pour utiliser les fonctionnalités de Lecteur multimédia Windows dans une application C#, ajoutez d’abord le composant à un formulaire, comme décrit dans Utilisation du contrôle Lecteur multimédia Windows avec Microsoft Visual Studio

Les sections suivantes décrivent comment créer une application qui lit des vidéos et utilise des boutons de lecture et d’arrêt personnalisés.

Ajouter la fenêtre vidéo

Ajoutez le contrôle ActiveX Lecteur multimédia Windows à un formulaire. Redimensionnez le contrôle, puis placez-le à l’endroit où vous souhaitez que la fenêtre vidéo s’affiche.

Sélectionnez le contrôle Lecteur multimédia Windows, puis remplacez la propriété uiMode par « none ». Ce paramètre masque les contrôles d’interface utilisateur. Lorsque l’utilisateur lit une vidéo, celle-ci s’affiche dans la fenêtre. Pour le contenu audio uniquement, une visualisation s’affiche.

Ajouter deux boutons et ajuster le formulaire

Maintenant, ajoutez deux boutons au formulaire. Sélectionnez le premier bouton et remplacez la propriété Text par « Play ». Sélectionnez le deuxième bouton et remplacez sa propriété Text par « Stop ».

Ajouter le code de lecture

Double-cliquez sur le bouton Lire pour afficher la fenêtre Code. En C#, le code suivant s’affiche :

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

}

Ajoutez cette ligne entre les deux accolades :

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

Dans l’exemple de code précédent, « axWindowsMediaPlayer1 » est le nom par défaut du contrôle Lecteur multimédia Windows et « c:\mediafile.wmv » est un espace réservé pour le nom de l’élément multimédia que vous souhaitez lire. Tout chemin d’accès de fichier valide peut être utilisé. Le symbole @ indique au compilateur de ne pas interpréter les barres obliques inverses comme des caractères d’échappement.

Si vous avez ajouté le contenu multimédia numérique du Kit de développement logiciel (SDK) Lecteur multimédia Windows à la bibliothèque dans Lecteur multimédia Windows, vous pouvez utiliser ce code à la place :

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

Étant donné que la propriété autoStart a la valeur true par défaut, Lecteur multimédia Windows commencez à lire lorsque vous définissez la propriété currentPlaylist ou URL.

Ajouter le code d’arrêt

Double-cliquez sur le bouton Arrêter pour afficher la fenêtre Code. En C#, le code suivant s’affiche :

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

}

Ajoutez cette ligne entre les deux accolades :

axWindowsMediaPlayer1.Ctlcontrols.stop();

Notes

Le wrapper de code managé pour le contrôle Lecteur multimédia Windows expose l’objet Controls en tant que Ctlcontrols pour éviter toute collision avec la propriété Controls héritée de System.Windows.Forms.Control.

 

Ajouter la gestion des erreurs

Le contrôle Lecteur multimédia Windows ne lève pas d’exception lorsqu’il rencontre une erreur telle qu’une URL non valide. Au lieu de cela, il signale un événement. Votre application doit gérer les événements d’erreur envoyés par le lecteur.

Pour créer un gestionnaire d’événements, ouvrez d’abord le Fenêtre Propriétés pour le contrôle Lecteur multimédia Windows. Dans la liste des événements, double-cliquez sur MediaError. Le code suivant s’affiche :

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

Le code suivant peut être inséré dans la méthode pour fournir une fonctionnalité minimale de gestion des erreurs. Notez que les informations sur l’erreur peuvent être récupérées à partir de l’argument _WMPOCXEvents_MediaErrorEvent .

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.");
} 

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