Partager via


Étape 4 : Créer la session multimédia

Cette rubrique est l’étape 4 du didacticiel Guide pratique pour lire des fichiers multimédias avec Media Foundation. Le code complet est illustré dans la rubrique Exemple de lecture de session multimédia.

CPlayer::CreateSession crée une instance de la session multimédia.

//  Create a new instance of the media session.
HRESULT CPlayer::CreateSession()
{
    // Close the old session, if any.
    HRESULT hr = CloseSession();
    if (FAILED(hr))
    {
        goto done;
    }

    assert(m_state == Closed);

    // Create the media session.
    hr = MFCreateMediaSession(NULL, &m_pSession);
    if (FAILED(hr))
    {
        goto done;
    }

    // Start pulling events from the media session
    hr = m_pSession->BeginGetEvent((IMFAsyncCallback*)this, NULL);
    if (FAILED(hr))
    {
        goto done;
    }

    m_state = Ready;

done:
    return hr;
}

Cette méthode effectue les étapes suivantes :

  1. Appelle CPlayer::CloseSession pour fermer n’importe quelle instance précédente de la session multimédia.
  2. Appelle MFCreateMediaSession pour créer une instance de la session multimédia.
  3. Appelle la méthode IMFMediaEventGenerator::BeginGetEvent pour demander l’événement suivant à partir de la session multimédia. Le premier paramètre de BeginGetEvent est un pointeur vers l’objet CPlayer même, qui implémente l’interface IMFAsyncCallback.

La gestion des événements est décrite à l’étape 5.

Suivant : Étape 5 : Gérer les événements de session multimédia

Lecture audio/vidéo

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