Bekerja dengan Tingkat Perlindungan Output

[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK, adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Penulis Sink alih-alih Windows Media Format 11 SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Lisensi yang dibuat dengan menggunakan Windows Media Rights Manager 10 SDK dapat menentukan pembatasan tindakan menggunakan tingkat perlindungan output (OPLs). OPLs memungkinkan pembuat lisensi untuk mengizinkan beberapa tindakan hanya pada perangkat dengan teknologi tertentu. Manfaat menggunakan OPL adalah Anda mendapatkan lebih banyak fleksibilitas dalam membuat pembatasan lisensi daripada versi sebelumnya. Selain itu, OPL dapat diperluas untuk mengakomodasi teknologi di masa depan. Anda dapat mendukung lisensi tersebut dalam aplikasi Anda dengan menggunakan metode antarmuka IWMDRMReader2 .

Untuk membaca file yang dilindungi oleh lisensi yang menentukan OPL, Anda harus memeriksa OPL untuk tindakan yang diinginkan. Teknologi output yang digunakan aplikasi Anda harus diizinkan oleh OPL dalam lisensi. Misalnya, beberapa lisensi untuk audio yang dilindungi mungkin mengharuskan Anda menggunakan jalur audio aman untuk memutarnya.

Mengonfigurasi Pembaca untuk Mengevaluasi Tingkat Perlindungan Output

Sebelum Anda dapat memeriksa OPLs untuk file yang dimuat di pembaca, Anda harus memanggil metode IWMDRMReader2::SetEvaluateOutputLevelLicenses , meneruskan TRUE untuk parameter fEvaluate . Jika Anda tidak memanggil metode ini, lisensi yang memerlukan OPLs tidak terlihat oleh aplikasi Anda.

Mengevaluasi Tingkat Perlindungan Output Salin

Untuk mendapatkan tingkat perlindungan output untuk tindakan salin, panggil metode IWMDRMReader2::GetCopyOutputLevels . Data yang Anda terima dari panggilan disimpan dalam struktur DRM_COPY_OPL . Struktur berisi tingkat perlindungan output dasar, yang menentukan tingkat output minimum untuk tindakan salin dalam lisensi. Namun, struktur DRM_COPY_OPL juga berisi dua daftar pengidentifikasi teknologi: satu untuk teknologi yang diizinkan yang dinilai pada OPL yang lebih rendah daripada basis, dan satu untuk teknologi yang dinilai sama dengan atau lebih tinggi dari OPL dasar tetapi itu dibatasi oleh lisensi. Anda harus memeriksa penyertaan dan pengecualian untuk memastikan bahwa teknologi yang digunakan aplikasi Anda diizinkan oleh lisensi.

Mengevaluasi Tingkat Perlindungan Output Putar

Untuk mendapatkan tingkat perlindungan output untuk tindakan putar, panggil metode IWMDRMReader2::GetPlayOutputLevels . Data yang Anda terima dari panggilan disimpan dalam struktur DRM_PLAY_OPL . Strukturnya berisi beberapa struktur lainnya. Tingkat perlindungan output dasar untuk tindakan putar disimpan dalam struktur DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS (anggota minOPLDRM_PLAY_OPL), yang menentukan OPL minimum yang diperlukan untuk memutar konten dalam berbagai format. Anda harus memeriksa anggota untuk jenis format output yang diberikan aplikasi Anda.

Struktur DRM_PLAY_OPL mendefinisikan dua jenis pembatasan: pengambilan sampel bawah yang diperlukan dan pengidentifikasi perlindungan output video yang diizinkan.

Pengambilan sampel yang diperlukan didefinisikan sebagai daftar pengidentifikasi teknologi output (anggota oplIdDownsampledari DRM_PLAY_OPL) yang, jika digunakan, dapat menerima konten untuk pemutaran hanya jika konten pertama kali di-down-sample ke laju bit yang lebih rendah.

Pengidentifikasi perlindungan output video yang diizinkan didefinisikan sebagai daftar teknologi output video dengan informasi konfigurasi untuk masing-masing.

Menangani Beberapa Lisensi

Beberapa file mungkin memiliki beberapa lisensi yang terkait dengannya di penyimpanan lisensi lokal. Saat Anda mengevaluasi OPL untuk file yang Anda baca, Anda dapat memeriksa lisensi tambahan dengan memanggil metode IWMDRMReader2::TryNextLicense . Anda harus terus mencoba lisensi sampai Anda menemukan lisensi yang memungkinkan tindakan yang ingin Anda lakukan atau hingga TryNextLicense mengembalikan DRM_S_FALSE, yang menunjukkan bahwa tidak ada lagi lisensi.

Dalam beberapa kasus, file mungkin memiliki lisensi terkait yang memerlukan OPL yang tidak dapat didukung aplikasi Anda. Dalam kasus seperti itu, penting untuk memeriksa lisensi tambahan karena lisensi mungkin ada yang tidak menentukan OPL.

Catatan DRM tidak didukung oleh versi berbasis x64 dari SDK ini.

Mengaktifkan Dukungan DRM

Antarmuka IWMDRMReader2