Cara Mengontrol Status Presentasi

Sesi Media menyediakan kontrol transportasi seperti mengubah status presentasi (Putar, Jeda, dan Berhenti dalam skenario pemutaran gaya daftar putar). Topik ini menjelaskan metode Sesi Media yang harus dipanggil aplikasi untuk mengubah status pemutaran.

Tabel berikut ini memperlihatkan transisi status presentasi yang valid.

Transisi status Deskripsi
Putar -> Jeda Jam presentasi membeku.
Putar -> Berhenti Jam presentasi direset.
Jeda -> Putar Jam presentasi dilanjutkan dari waktu dibekukan selama transisi Putar ke Jeda.
Jeda -> Berhenti Jam presentasi direset.
Berhenti -> Putar Jam presentasi dimulai dari awal presentasi.
Berhenti -> Jeda Tidak diperbolehkan.

 

Untuk mengubah status presentasi

  • Panggil metode IMFMediaSession::P ause untuk menjeda pemutaran.

    hr = pMediaSession->Pause();
    

    Sebelum memanggil metode ini, aplikasi harus memanggil metode IMFMediaSession::GetSessionCapabilities untuk menemukan apakah sumber media mendukung status Jeda. Jika ya, metode ini mengembalikan MFSESSIONCAP_PAUSE dalam parameter pdwCaps .

    Jeda sementara menghentikan Sesi Media, jam presentasi, dan sink aliran untuk presentasi saat ini. Setelah panggilan berhasil diselesaikan, aplikasi menerima peristiwa MESessionPaused .

  • Panggil metode IMFMediaSession::Stop untuk menghentikan pemutaran.

    hr = pMediaSession->Stop();
    

    Metode ini menghentikan Sesi Media dengan menghentikan sumber media, jam yang sesuai, dan streaming sink. Jika Sesi Media mengontrol Sumber Pengurut, sumber asli yang mendasar dihentikan oleh sumber pengurut. Setelah Sesi Media dihentikan, aplikasi menerima peristiwa MESessionStopped .

  • Panggil metode IMFMediaSession::Start untuk memulai pemutaran atau cari posisi baru.

    hr = pMediaSession->Start(NULL, &var);
    

    Metode ini memulai Sesi Media dari status Jeda dan Hentikan. Sesi Media bertanggung jawab untuk menyiapkan aliran data dalam alur. Metode ini menginstruksikan Sesi Media untuk memulai jam presentasi. Setelah panggilan ini, Sesi Media mengirimkan peristiwa MESessionStarted ke aplikasi.

Sesi Media