Cara Memutar File Media dengan Media Foundation
Tutorial ini menunjukkan cara memutar file media menggunakan objek Sesi Media .
Prasyarat
Sebelum membaca topik ini, Anda harus terbiasa dengan konsep Media Foundation berikut:
Catatan
Topik ini tidak menjelaskan cara memutar file yang dilindungi oleh manajemen hak digital (DRM). Untuk informasi tentang DRM di Microsoft Media Foundation, lihat Cara Memutar File Media Yang Dilindungi.
Gambaran Umum
Objek berikut digunakan untuk memutar file media dengan Sesi Media:
- Sumber media adalah objek yang mengurai file media atau sumber data media lainnya. Sumber media membuat objek streaming untuk setiap aliran audio atau video dalam file. Decoders mengonversi data media yang dikodekan menjadi video dan audio yang tidak dikompresi.
- Pemecah Masalah Sumber membuat sumber media dari URL.
- Enhanced Video Renderer (EVR) merender video ke layar.
- Streaming Audio Renderer (SAR) merender audio ke speaker atau perangkat output audio lainnya.
- Topologi mendefinisikan aliran data dari sumber media ke EVR dan SAR.
- Sesi Media mengontrol aliran data dan mengirim peristiwa status ke aplikasi. Diagram berikut mengilustrasikan hubungan ini.
Berikut ini adalah kerangka umum langkah-langkah yang diperlukan untuk memutar file media menggunakan Sesi Media:
Panggil fungsi MFStartup untuk menginisialisasi platform Media Foundation.
Panggil MFCreateMediaSession untuk membuat instans baru Sesi Media.
Gunakan pemecah masalah sumber untuk membuat sumber media. Untuk informasi selengkapnya, lihat Menggunakan Pemecah Masalah Sumber.
Buat topologi yang menghubungkan sumber media ke EVR dan SAR. Dalam langkah ini, aplikasi membuat topologi parsial yang tidak menyertakan dekode. Untuk informasi selengkapnya, lihat Membuat Topologi Pemutaran.
Panggil IMFMediaSession::SetTopology untuk mengatur topologi pada Sesi Media.
Gunakan antarmuka IMFMediaEventGenerator untuk mendapatkan peristiwa dari Sesi Media.
Panggil IMFMediaSession::Mulai untuk memulai pemutaran. Setelah pemutaran dimulai, Anda dapat menjedanya dengan memanggil IMFMediaSession::P ause, atau menghentikannya dengan memanggil IMFMediaSession::Stop.
Saat aplikasi keluar, rilis sumber daya:
- Panggil IMFMediaSession::Close untuk menutup Sesi Media. Metode ini asinkron. Setelah selesai, Sesi Media mengirimkan peristiwa MESessionClosed . Maka aman untuk melakukan langkah-langkah yang tersisa.
- Panggil IMFMediaSource::Shutdown untuk mematikan sumber media.
- Panggil IMFMediaSession::Shutdown untuk mematikan Sesi Media.
- Panggil MFShutdown untuk mematikan platform Media Foundation.
Bagian berikut menunjukkan contoh kode lengkap:
- Langkah 1: Deklarasikan Kelas CPlayer
- Langkah 2: Buat Objek CPlayer
- Langkah 3: Buka File Media
- Langkah 4: Buat Sesi Media
- Langkah 5: Menangani Peristiwa Sesi Media
- Langkah 6: Mengontrol Pemutaran
- Langkah 7: Matikan Sesi Media
- Contoh Pemutaran Sesi Media
Topik terkait