Langkah 4: Buat Sesi Media
Topik ini adalah langkah 4 dari tutorial Cara Memutar File Media dengan Media Foundation. Kode lengkap ditampilkan dalam topik Contoh Pemutaran Sesi Media.
Membuat CPlayer::CreateSession
instans baru Sesi Media.
// 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;
}
Metode ini melakukan langkah-langkah berikut:
- Panggilan untuk menutup instans
CPlayer::CloseSession
Sesi Media sebelumnya. - Memanggil MFCreateMediaSession untuk membuat instans baru Sesi Media.
- Memanggil metode IMFMediaEventGenerator::BeginGetEvent untuk meminta peristiwa berikutnya dari Sesi Media. Parameter pertama untuk BeginGetEvent adalah penunjuk ke objek CPlayer itu sendiri, yang mengimplementasikan antarmuka IMFAsyncCallback.
Penanganan peristiwa dijelaskan di langkah 5.
Berikutnya: Langkah 5: Menangani Peristiwa Sesi Media
Topik terkait