Guide pratique pour 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 media session qu’une application doit appeler pour modifier l’état de lecture.

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

Transition d'état Description
Lecture -> Pause L’horloge de présentation se fige.
Play -> Stop L’horloge de présentation est réinitialisée.
Suspendre -> Lire L’horloge de présentation reprend à partir du moment où elle s’est figée pendant la transition lecture-pause.
Suspendre -> Arrêter L’horloge de présentation est réinitialisée.
Arrêter -> Lire L’horloge de la présentation commence à partir du 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écouvrir 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 la présentation et le récepteur de flux de 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 sequencer, les sources natives sous-jacentes sont arrêtées par la source du séquenceur. 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 Stop. La session multimédia est responsable de la configuration du flux de données dans le pipeline. Cette méthode indique à la session multimédia de démarrer l’horloge de présentation. Après cet appel, Media Session envoie un événement MESessionStarted à l’application.

Session multimédia