É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 :
- Appelle
CPlayer::CloseSession
pour fermer n’importe quelle instance précédente de la session multimédia. - Appelle MFCreateMediaSession pour créer une instance de la session multimédia.
- 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
Rubriques connexes