Sesi Media PMP

Aplikasi dapat membuat Sesi Media dalam proses terpisah yang disebut proses Jalur Media Terproteksi (PMP). Tujuan utama dari proses PMP adalah untuk mengaktifkan pemutaran konten yang dilindungi menggunakan manajemen hak digital (DRM). Secara default, proses PMP dibuat di dalam Lingkungan Terlindungi (PE). Hanya komponen tepercaya yang ditandatangani yang dapat dimuat di dalam PE. Manfaat sekunder dari proses PMP adalah mengisolasi proses aplikasi dari alur media. Untuk informasi selengkapnya tentang proses PMP, lihat Jalur Media Terproteksi.

Untuk membuat Sesi Media di dalam proses PMP, panggil fungsi MFCreatePMPMediaSession . Secara opsional, Anda dapat meneruskan bendera MFPMPSESSION_UNPROTECTED_PROCESS . Jika bendera ini diatur, proses PMP dibuat di dalam proses yang tidak terlindungi, dan bukan proses PE. Proses yang tidak terlindungi tidak dapat digunakan untuk pemutaran DRM, tetapi memberi Anda manfaat isolasi proses.

Fungsi MFCreatePMPMediaSession mengembalikan penunjuk ke objek proksi untuk Sesi Media. Aplikasi berkomunikasi dengan Sesi Media melalui proksi.

ilustrasi sesi media di dalam proses pmp

Secara default, ketika aplikasi membuat topologi, sumber media dibuat di dalam proses aplikasi. Proksi ke sumber media dibuat di dalam proses PMP. Sumber media dapat membuat objek di dalam proses PMP dengan menggunakan antarmuka IMFPMPHost . Misalnya, untuk mendukung DRM, sumber media membuat objek yang disebut otoritas kepercayaan input (ITA). ITA harus dibuat di dalam proses PMP. (Untuk informasi selengkapnya tentang ITA, lihat Jalur Media Terproteksi.) Untuk menggunakan antarmuka IMFPMPHost , lakukan hal berikut:

  1. Sumber media harus mengimplementasikan antarmuka IMFPMPClient .
  2. Selama resolusi topologi, proksi Sesi Media memanggil metode IMFPMPClient::SetPMPHost pada sumber media.
  3. Sumber media memanggil IMFPMPHost::CreateObjectByCLSID untuk membuat objek di dalam proses PMP. Objek harus memiliki CLSID terdaftar. Selain itu, untuk memuat di dalam PE, objek harus dipercaya dan ditandatangani secara digital. Untuk informasi tentang penandatanganan kode komponen media yang dilindungi, lihat laporan resmi Penandatanganan Kode untuk Komponen Media Terlindungi di Windows Vista

Ilustrasi berikut menunjukkan sumber media yang dibuat dalam proses aplikasi.

ilustrasi sumber media dalam proses aplikasi.

Alternatif lain adalah membuat sumber media di dalam sesi PMP.

  1. Atur atribut MF_SESSION_REMOTE_SOURCE_MODE saat Anda membuat Sesi Media. Atribut konfigurasi ditentukan dalam parameter pConfiguration dari fungsi MFCreatePMPMediaSession .

  2. Panggil MFGetService di Sesi Media untuk mendapatkan penunjuk ke antarmuka IMFPMPHost . Pengidentifikasi layanan MF_PMP_SERVICE.

  3. Panggil IMFPMPHost::CreateObjectByCLSID dengan pengidentifikasi kelas CLSID_MFSourceResolver untuk membuat resolver sumber di dalam proses PMP. Metode mengembalikan penunjuk ke proksi untuk pemecah masalah sumber.

  4. Panggil IMFSourceResolver::BeginCreateObjectFromURL atau IMFSourceResolver::BeginCreateObjectFromByteStream untuk membuat sumber media.

    Catatan

    Dalam hal ini, Anda harus menggunakan versi asinkron dari metode ini, karena versi sinkron tidak dapat dimodifikasi.

     

Ilustrasi berikut menunjukkan sumber media yang dibuat dalam proses PMP.

ilustrasi sumber media dalam proses pmp.

Cara Memainkan File Media Terproteksi

Sesi Media

Jalur Media Terproteksi