Guide pratique pour lire des fichiers multimédias avec Media Foundation

Ce tutoriel montre comment lire des fichiers multimédias à l’aide de l’objet Session multimédia .

Prérequis

Avant de lire cette rubrique, vous devez vous familiariser avec les concepts suivants de Media Foundation :

Notes

Cette rubrique ne décrit pas comment lire les fichiers protégés par la gestion des droits numériques (DRM). Pour plus d’informations sur la gestion des droits numériques dans Microsoft Media Foundation, consultez Guide pratique pour lire des fichiers multimédias protégés.

 

Vue d’ensemble

Les objets suivants sont utilisés pour lire un fichier multimédia avec la session multimédia :

  • Une source multimédia est un objet qui analyse un fichier multimédia ou une autre source de données multimédias. La source multimédia crée des objets stream pour chaque flux audio ou vidéo dans le fichier. Les décodeurs convertissent les données multimédias encodées en vidéos et audio non compressées.
  • Source Resolver crée une source multimédia à partir d’une URL.
  • Le convertisseur vidéo amélioré (EVR) affiche la vidéo à l’écran.
  • Le convertisseur audio de streaming (SAR) restitue l’audio sur un haut-parleur ou un autre périphérique de sortie audio.
  • Une topologie définit le flux de données de la source multimédia vers l’EVR et le SAR.
  • La session multimédia contrôle le flux de données et envoie status événements à l’application. Le diagramme suivant illustre ce processus.

diagramme montrant la lecture à l’aide de la session multimédia

Voici un aperçu général des étapes nécessaires pour lire un fichier multimédia à l’aide de la session multimédia :

  1. Appelez la fonction MFStartup pour initialiser la plateforme Media Foundation.

  2. Appelez MFCreateMediaSession pour créer une instance de la session multimédia.

  3. Utilisez le programme de résolution source pour créer une source multimédia. Pour plus d’informations, consultez Utilisation du programme de résolution de source.

  4. Créez une topologie qui connecte la source multimédia à l’EVR et au SAR. Dans cette étape, l’application crée une topologie partielle qui n’inclut pas les décodeurs. Pour plus d’informations, consultez Création de topologies de lecture.

  5. Appelez IMFMediaSession::SetTopology pour définir la topologie sur la session multimédia.

  6. Utilisez l’interface IMFMediaEventGenerator pour obtenir des événements à partir de la session multimédia.

  7. Appelez IMFMediaSession::Start pour démarrer la lecture. Une fois la lecture démarrée, vous pouvez la suspendre en appelant IMFMediaSession::P ause, ou l’arrêter en appelant IMFMediaSession::Stop.

  8. À la sortie de l’application, libèrez les ressources :

    1. Appelez IMFMediaSession::Fermer pour fermer la session multimédia. Cette méthode est asynchrone. Une fois terminée, la session multimédia envoie un événement MESessionClosed . Ensuite, il est prudent d’effectuer les étapes restantes.
    2. Appelez IMFMediaSource::Shutdown pour arrêter la source du média.
    3. Appelez IMFMediaSession::Shutdown pour arrêter la session multimédia.
    4. Appelez MFShutdown pour arrêter la plateforme Media Foundation.

Les sections suivantes présentent un exemple de code complet :

Session multimédia

Lecture audio/vidéo