Utilisation de sources multimédias avec la session multimédia

Si vous utilisez la session multimédia pour contrôler la lecture, l’ensemble de méthodes que vous devez appeler sur une source multimédia est restreint. Cette section explique comment utiliser la source multimédia conjointement avec la session multimédia.

Voici les étapes de base que votre application effectuera :

  1. Créez la source multimédia. Pour créer une source multimédia, utilisez le programme de résolution de source. Pour plus d’informations, consultez Résolution de source. Le programme de résolution source retourne un pointeur vers l’interface IMFMediaSource de la source. (Si vous avez écrit une source multimédia personnalisée, vous pouvez fournir une méthode de création personnalisée à la place.)

  2. Configurez la présentation. Pour configurer la présentation de la source, appelez IMFMediaSource::CreatePresentationDescriptor. Vous pouvez modifier cette copie, mais les modifications ne deviennent actives qu’au début de la lecture. Ne modifiez pas le descripteur de présentation pendant la lecture. Pour plus d’informations, consultez Descripteurs de présentation.

  3. Créez une topologie qui contient la source multimédia. Pour plus d’informations, consultez Topologies.

  4. Utilisez la session multimédia pour contrôler la lecture. La session multimédia appelle des méthodes sur la source multimédia. L’application ne doit appeler aucune méthode sur la source multimédia pour le moment.

  5. Avant de publier la source multimédia, appelez IMFMediaSource::Shutdown pour arrêter la source.

    Notes

    Si vous utilisez la source de séquenceur, la source du séquenceur gère l’arrêt des sources de segment. Pour plus d’informations, consultez Source sequencer.

     

Si vous utilisez la session multimédia, les seules méthodes que vous devez appeler sur la source multimédia sont CreatePresentationDescriptor, GetCharacteristics et Shutdown. En particulier :

  • N’appelez pas Démarrer, Suspendre ou Arrêter ; ces méthodes doivent être appelées uniquement par la session multimédia.

  • N’appelez aucune méthode IMFMediaStream .

  • Ne récupérez pas d’événements directement à partir de la source multimédia ou de l’un des flux. La session multimédia doit recevoir ces événements pour que le pipeline fonctionne correctement. La session multimédia transfère tous les événements nécessaires à l’application.

Session multimédia