Schritt 4: Erstellen der Mediensitzung
Dieses Thema ist Schritt 4 des Tutorials Wiedergeben von Mediendateien mit Media Foundation. Der vollständige Code wird im Thema Beispiel für die Mediensitzungswiedergabe gezeigt.
CPlayer::CreateSession
erstellt eine neue Instanz der Mediensitzung.
// 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;
}
Diese Methode führt die folgenden Schritte aus:
- Ruft
CPlayer::CloseSession
zum Schließen einer früheren Instanz der Mediensitzung an. - Ruft MFCreateMediaSession an, um eine neue Instanz der Mediensitzung zu erstellen.
- Ruft die Methode IMFMediaEventGenerator::BeginGetEvent an, um das nächste Ereignis aus der Mediensitzung anzufordern. Der erste Parameter auf BeginGetEvent ist ein Zeiger auf das CPlayer-Objekt selbst, das die IMFAsyncCallback-Schnittstelle implementiert.
Die Ereignisverarbeitung wird in Schritt 5 beschrieben.
Nächstes: Schritt 5: Verarbeiten von Mediensitzungsereignissen
Zugehörige Themen