Comment contrôler les États de présentation

La session multimédia fournit un contrôle de transport, tel que la modification des États de présentation (lecture, pause et arrêt dans un scénario de lecture de style playlist). Cette rubrique décrit les méthodes de session multimédia qu’une application doit appeler pour modifier l’état de lecture.

Le tableau suivant répertorie les transitions d’état de présentation valides.

Transition d'état Description
Lecture > pause L’horloge de la présentation se fige.
Lecture > arrêter L’horloge de la présentation est réinitialisée.
Pause-> de lecture L’horloge de la présentation reprend à partir du moment où elle figée pendant la lecture pour suspendre la transition.
Interrompre-> arrêter L’horloge de la présentation est réinitialisée.
Lecture > L’horloge de présentation commence au début de la présentation.
Arrêter > suspendre Non autorisé.

Pour modifier les États de présentation

  • Appelez la méthode IMFMediaSession ::P ause pour suspendre la lecture.

    hr = pMediaSession->Pause();
    

    Avant d’appeler cette méthode, l’application doit appeler la méthode IMFMediaSession :: GetSessionCapabilities pour déterminer si la source du média prend en charge l’État pause. Si c’est le cas, cette méthode retourne MFSESSIONCAP _ Pause dans le paramètre pdwCaps .

    Suspendre arrête temporairement la session multimédia, l’horloge de présentation et le récepteur de flux pour la présentation actuelle. Une fois l’appel terminé, l’application reçoit un événement MESessionPaused .

  • Appelez la méthode IMFMediaSession :: Stop pour arrêter la lecture.

    hr = pMediaSession->Stop();
    

    Cette méthode arrête la session multimédia en arrêtant la source du média, les horloges correspondantes et les récepteurs de flux. Si la session multimédia contrôle la source de Sequencer, les sources natives sous-jacentes sont arrêtées par la source de Sequencer. Une fois la session multimédia arrêtée, l’application reçoit un événement MESessionStopped .

  • Appelez la méthode IMFMediaSession :: Start pour démarrer la lecture ou rechercher une nouvelle position.

    hr = pMediaSession->Start(NULL, &var);
    

    Cette méthode démarre la session multimédia à partir des États pause et arrêt. La session multimédia est responsable de la configuration du workflow dans le pipeline. Cette méthode indique à la session multimédia de démarrer l’horloge de la présentation. Après cet appel, la session multimédia envoie un événement MESessionStarted à l’application.

Session multimédia