Passaggio 4: Creare la sessione multimediale
Questo argomento è il passaggio 4 dell'esercitazione Come riprodurre file multimediali con Media Foundation. Il codice completo è illustrato nell'argomento Esempio di riproduzione di sessioni multimediali.
Crea CPlayer::CreateSession
una nuova istanza della sessione multimediale.
// 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;
}
Questo metodo esegue i passaggi seguenti:
- Chiama
CPlayer::CloseSession
per chiudere qualsiasi istanza precedente della sessione multimediale. - Chiama MFCreateMediaSession per creare una nuova istanza della sessione multimediale.
- Chiama il metodo IMFMediaEventGenerator::BeginGetEvent per richiedere l'evento successivo dalla sessione multimediale. Il primo parametro di BeginGetEvent è un puntatore all'oggetto CPlayer stesso, che implementa l'interfaccia IMFAsyncCallback .
La gestione degli eventi è descritta nel passaggio 5.
Passaggio 5: Gestire gli eventi della sessione multimediale
Argomenti correlati