Bagikan melalui


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:

  1. Panggilan untuk menutup instans CPlayer::CloseSession Sesi Media sebelumnya.
  2. Memanggil MFCreateMediaSession untuk membuat instans baru Sesi Media.
  3. 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

Pemutaran Audio/Video

Cara Memutar File Media dengan Media Foundation