PlayReady DRM

Topik ini menjelaskan cara menambahkan konten media yang dilindungi PlayReady ke aplikasi Platform Windows Universal (UWP) Anda.

PlayReady DRM memungkinkan pengembang untuk membuat aplikasi UWP yang mampu menyediakan konten PlayReady kepada pengguna sambil menegakkan aturan akses yang ditentukan oleh penyedia konten. Bagian ini menjelaskan perubahan yang dilakukan pada Microsoft PlayReady DRM untuk Windows 10 dan cara memodifikasi aplikasi PlayReady UWP Anda untuk mendukung perubahan yang dibuat dari versi Windows 8.1 sebelumnya ke versi Windows 10.

Topik Deskripsi
DRM Perangkat Keras Topik ini memberikan gambaran umum tentang cara menambahkan manajemen hak digital (DRM) berbasis perangkat keras PlayReady ke aplikasi UWP Anda.
Streaming adaptif dengan PlayReady Artikel ini menjelaskan cara menambahkan streaming adaptif konten multimedia dengan perlindungan konten Microsoft PlayReady ke aplikasi Platform Windows Universal (UWP). Fitur ini saat ini mendukung pemutaran konten Http Live Streaming (HLS) dan Dynamic Streaming melalui HTTP (DASH).

Apa yang baru dalam PlayReady DRM

Daftar berikut ini menjelaskan fitur dan perubahan baru yang dilakukan pada PlayReady DRM untuk Windows 10.

  • Menambahkan manajemen hak digital perangkat keras (HWDRM).

    Dukungan perlindungan konten berbasis perangkat keras memungkinkan pemutaran konten definisi tinggi (HD) dan definisi ultra-tinggi (UHD) yang aman di beberapa platform perangkat. Materi utama (termasuk kunci privat, kunci konten, dan materi kunci lainnya yang digunakan untuk memperoleh atau membuka kunci kunci tersebut), dan sampel video terkompresi dan tidak terkompresi yang didekripsi dilindungi dengan memanfaatkan keamanan perangkat keras. Ketika DRM Perangkat Keras sedang digunakan, tidak ada pengaktif yang tidak diketahui (mainkan ke tidak diketahui / mainkan ke downres) memiliki arti karena alur HWDRM selalu tahu output yang digunakan. Untuk informasi selengkapnya, lihat DRM perangkat keras.

  • PlayReady bukan lagi komponen kerangka kerja appX, tetapi sebaliknya adalah komponen sistem operasi dalam kotak. Namespace diubah dari Microsoft.Media.PlayReadyClient ke Windows.Media.Protection.PlayReady.

  • Header berikut yang menentukan kode kesalahan PlayReady sekarang menjadi bagian dari Windows Software Development Kit (SDK): Windows.Media.Protection.PlayReadyErrors.h dan Windows.Media.Protection.PlayReadyResults.h.

  • Menyediakan akuisisi lisensi non-persisten secara proaktif.

    Versi PlayReady DRM sebelumnya tidak mendukung akuisisi lisensi non-persisten secara proaktif. Kapabilitas ini telah ditambahkan ke versi ini. Ini dapat mengurangi waktu ke bingkai pertama. Untuk informasi selengkapnya, lihat Memperoleh Lisensi Non-Persisten Secara Proaktif Sebelum Pemutaran.

  • Menyediakan akuisisi beberapa lisensi dalam satu pesan.

    Memungkinkan aplikasi klien untuk memperoleh beberapa lisensi non-persisten dalam satu pesan akuisisi lisensi. Ini dapat mengurangi waktu ke bingkai pertama dengan memperoleh lisensi untuk beberapa bagian konten saat pengguna masih menelusuri pustaka konten Anda; ini mencegah penundaan untuk akuisisi lisensi saat pengguna memilih konten yang akan diputar. Selain itu, ini memungkinkan aliran audio dan video dienkripsi ke kunci terpisah dengan mengaktifkan header konten yang mencakup beberapa pengidentifikasi kunci (KID); ini memungkinkan akuisisi lisensi tunggal untuk memperoleh semua lisensi untuk semua aliran dalam file konten alih-alih harus menggunakan logika kustom dan beberapa permintaan akuisisi lisensi untuk mencapai hasil yang sama.

  • Menambahkan dukungan kedaluwarsa real time, atau lisensi durasi terbatas (LDL).

    Menyediakan kemampuan untuk mengatur kedaluwarsa real-time pada lisensi dan transisi dengan lancar dari lisensi yang kedaluwarsa ke lisensi lain (valid) di tengah pemutaran. Ketika dikombinasikan dengan akuisisi beberapa lisensi dalam satu pesan, ini memungkinkan aplikasi untuk memperoleh beberapa LDL secara asinkron saat pengguna masih menelusuri pustaka konten dan hanya memperoleh lisensi durasi yang lebih lama setelah pengguna memilih konten untuk diputar. Pemutaran kemudian akan dimulai lebih cepat (karena lisensi sudah tersedia) dan, karena aplikasi akan memperoleh lisensi durasi yang lebih lama pada saat LDL kedaluwarsa, lanjutkan pemutaran dengan lancar ke akhir konten tanpa gangguan.

  • Menambahkan rantai lisensi yang tidak persisten.

  • Menambahkan dukungan untuk pembatasan berbasis waktu (termasuk kedaluwarsa, kedaluwarsa setelah pemutaran pertama, dan kedaluwarsa real time) pada lisensi yang tidak persisten.

  • Menambahkan dukungan kebijakan HDCP Tipe 1 (versi 2.2 pada Windows 10).

    Lihat Hal-hal yang Perlu Dipertimbangkan untuk informasi selengkapnya.

  • Miracast sekarang implisit sebagai output.

  • Menambahkan perhentian aman.

    Penghentian aman menyediakan sarana bagi perangkat PlayReady untuk dengan percaya diri menegaskan ke layanan streaming media bahwa pemutaran media telah berhenti untuk konten tertentu. Kemampuan ini memastikan layanan streaming media Anda memberikan penegakan dan pelaporan batasan penggunaan yang akurat pada perangkat yang berbeda untuk akun tertentu.

  • Menambahkan pemisahan lisensi audio dan video.

    Trek terpisah mencegah video didekodekan sebagai audio; mengaktifkan perlindungan konten yang lebih kuat. Standar yang muncul memerlukan kunci terpisah untuk trek audio dan visual.

  • Menambahkan MaxResDecode.

    Fitur ini ditambahkan untuk membatasi pemutaran konten ke resolusi maksimum bahkan ketika memiliki kunci yang lebih mampu (tetapi bukan lisensi). Ini mendukung kasus di mana beberapa ukuran aliran dikodekan dengan satu kunci.

Antarmuka, kelas, dan enumerasi baru berikut ditambahkan ke PlayReady DRM:

Sampel baru telah dibuat untuk menunjukkan cara menggunakan fitur baru PlayReady DRM. Sampel dapat diunduh dari Browser Sampel Kode.

Hal-hal yang perlu dipertimbangkan

  • PlayReady DRM sekarang mendukung HDCP Tipe 1 (didukung dalam HDCP versi 2.1 atau yang lebih baru). PlayReady membawa kebijakan Pembatasan Jenis HDCP dalam lisensi untuk diberlakukan perangkat. Pada Windows 10, kebijakan ini akan memberlakukan bahwa HDCP 2.2 atau yang lebih baru terlibat. Fitur ini dapat diaktifkan di lisensi PlayReady Server v3.0 SDK Anda (server mengontrol kebijakan ini dalam lisensi menggunakan GUID Pembatasan Jenis HDCP). Untuk informasi selengkapnya, lihat Aturan Kepatuhan dan Ketahanan PlayReady.
  • Windows Media Video (juga dikenal sebagai VC-1) tidak didukung dalam DRM perangkat keras (lihat Mengambil alih DRM Perangkat Keras).
  • PlayReady DRM sekarang mendukung standar kompresi video High Efficiency Video Coding (HEVC /H.265). Untuk mendukung HEVC, aplikasi Anda harus menggunakan konten Common Encryption Scheme (CENC) versi 2 yang mencakup meninggalkan header ipotong konten dengan jelas. Lihat teknologi informasi ISO/IEC 23001-7 -- Teknologi sistem MPEG -- Bagian 7: Enkripsi umum dalam file format file media dasar ISO (Versi spesifikasi ISO/IEC 23001-7:2015 atau yang lebih baru diperlukan.) untuk informasi lebih lanjut. Microsoft juga merekomendasikan penggunaan CENC versi 2 untuk semua konten HWDRM. Selain itu, beberapa DRM perangkat keras akan mendukung HEVC dan beberapa tidak akan (lihat Mengambil alih DRM Perangkat Keras).
  • Untuk memanfaatkan fitur PlayReady 3.0 baru tertentu (termasuk, tetapi tidak terbatas pada, SL3000 untuk klien berbasis perangkat keras, memperoleh beberapa lisensi non-persisten dalam satu pesan akuisisi lisensi, dan pembatasan berbasis waktu pada lisensi non-persisten), server PlayReady diperlukan untuk menjadi Microsoft PlayReady Server Software Development Kit v3.0.2769 Versi Rilis atau yang lebih baru.
  • Bergantung pada Kebijakan Perlindungan Output yang ditentukan dalam lisensi konten, pemutaran media mungkin gagal untuk pengguna akhir jika output yang terhubung tidak mendukung persyaratan tersebut. Tabel berikut ini mencantumkan kumpulan kesalahan umum yang terjadi sebagai akibatnya. Untuk informasi selengkapnya, lihat Aturan Kepatuhan dan Ketahanan PlayReady.
Kesalahan Nilai Deskripsi
ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP 0xC0262513 Kebijakan Perlindungan Output lisensi mengharuskan monitor untuk melibatkan HDCP, tetapi HDCP tidak dapat dilibatkan.
MF_E_POLICY_UNSUPPORTED 0xC00D7159 Kebijakan Perlindungan Output lisensi mengharuskan monitor untuk melibatkan HDCP Tipe 1, tetapi HDCP Tipe 1 tidak dapat dilibatkan.
DRM_E_TEE_OUTPUT_PROTECTION_REQUIREMENTS_NOT_MET 0x8004CD22 Kode galat ini hanya terjadi ketika berjalan di bawah DRM perangkat keras. Kebijakan Perlindungan Output lisensi mengharuskan monitor untuk melibatkan HDCP atau untuk mengurangi resolusi efektif konten, tetapi HDCP tidak dapat terlibat dan resolusi efektif konten tidak dapat dikurangi karena DRM perangkat keras tidak mendukung pengurangan resolusi konten. Di bawah DRM perangkat lunak, konten diputar. Lihat Pertimbangan untuk Menggunakan DRM Perangkat Keras.
ERROR_GRAPHICS_OPM_NOT_SUPPORTED 0xc0262500 Driver grafis tidak mendukung Perlindungan Output. Misalnya, monitor terhubung melalui VGA atau driver grafis yang sesuai untuk output digital tidak diinstal. Dalam kasus terakhir, driver khas yang diinstal adalah Microsoft Basic Display Adapter dan menginstal driver grafis yang sesuai akan menyelesaikan masalah.

Perlindungan output

Bagian berikut menjelaskan perilaku saat menggunakan PlayReady DRM untuk Windows 10 dengan kebijakan perlindungan output dalam lisensi PlayReady.

PlayReady DRM mendukung tingkat perlindungan output yang terkandung dalam Spesifikasi Hak Media Yang Dapat Diperluas Microsoft PlayReady. Dokumen ini dapat ditemukan dalam paket dokumentasi yang dilengkapi dengan produk berlisensi PlayReady.

Catatan

Nilai yang diizinkan untuk tingkat perlindungan output yang dapat diatur oleh server lisensi diatur oleh Aturan Kepatuhan PlayReady.

Drm PlayReady memungkinkan pemutaran konten dengan kebijakan perlindungan output hanya pada konektor output seperti yang ditentukan dalam Aturan Kepatuhan PlayReady. Untuk informasi selengkapnya tentang istilah konektor output yang ditentukan dalam Aturan Kepatuhan PlayReady, lihat Ketentuan yang Ditentukan untuk Kepatuhan PlayReady dan Aturan Ketahanan.

Bagian ini berfokus pada skenario perlindungan output dengan DRM PlayReady untuk Windows 10 dan DRM Perangkat Keras PlayReady untuk Windows 10, yang juga tersedia di beberapa klien Windows. Dengan PlayReady HWDRM, semua perlindungan output diberlakukan dari dalam implementasi Windows TEE (lihat DRM Perangkat Keras). Akibatnya, beberapa perilaku berbeda dari saat menggunakan PlayReady SWDRM (DRM perangkat lunak):

  • Dukungan untuk Tingkat Perlindungan Output (OPL) untuk Uncompressed Digital Video 270: PlayReady HWDRM untuk Windows 10 tidak mendukung resolusi rendah dan akan memberlakukan HDCP (Perlindungan Konten Digital bandwidth tinggi) terlibat. Disarankan agar konten definisi tinggi untuk HWDRM memiliki OPL yang lebih besar dari 270 (meskipun tidak diperlukan). Selain itu, Anda harus mengatur pembatasan jenis HDCP dalam lisensi (HDCP versi 2.2 atau yang lebih baru).
  • Tidak seperti SWDRM, dengan HWDRM, perlindungan output diberlakukan pada semua monitor berdasarkan monitor yang paling tidak mampu. Misalnya, jika pengguna memiliki dua monitor yang terhubung di mana satu mendukung HDCP dan yang lain tidak, pemutaran akan gagal jika lisensi memerlukan HDCP meskipun konten hanya dirender pada monitor yang mendukung HDCP. Di SWDRM, konten akan diputar kembali selama hanya dirender pada monitor yang mendukung HDCP.
  • HWDRM tidak dijamin digunakan oleh klien dan aman kecuali kondisi berikut dipenuhi oleh kunci konten dan lisensi:
    • Lisensi yang digunakan untuk kunci konten video harus memiliki tingkat keamanan minimum 3000.
    • Audio harus dienkripsi ke kunci konten yang berbeda dari video, dan lisensi yang digunakan untuk audio harus memiliki tingkat keamanan minimum 2000. Atau, audio dapat dibiarkan jelas.
  • Semua skenario SWDRM mengharuskan tingkat keamanan minimum lisensi PlayReady yang digunakan untuk kunci konten audio dan/atau video lebih rendah atau sama dengan 2000.

Tingkat perlindungan output

Tabel berikut menguraikan pemetaan antara berbagai OPL dalam lisensi PlayReady dan bagaimana PlayReady DRM untuk Windows 10 memberlakukannya.

Video

OPL Video digital terkompresi Video digital yang tidak dikompresi Analog TV
Apa pun HDMI, DVI, DisplayPort, MHL Komponen, Komposit
100 N/A\* Meneruskan konten Meneruskan konten
150 N/A\* Meneruskan konten saat CGMS-A CopyNever terlibat atau jika CGMS-A tidak dapat dilibatkan
200 Meneruskan konten saat CGMS-A CopyNever terlibat
250 Mencoba melibatkan HDCP, tetapi meneruskan konten terlepas dari hasilnya N/A\*
270 SWDRM: Upaya untuk melibatkan HDCP. Jika HDCP gagal terlibat, PC akan membatasi resolusi efektif menjadi 520.000 piksel per bingkai dan meneruskan konten HWDRM: Meneruskan konten dengan HDCP. Jika HDCP gagal terlibat, pemutaran ke port HDMI/DVI diblokir
300

**Ketika pembatasan jenis HDCP TIDAK ditentukan:** Meneruskan konten dengan HDCP. Jika HDCP gagal terlibat, pemutaran ke port HDMI/DVI diblokir.

**Ketika pembatasan jenis HDCP DITENTUKAN**: Meneruskan konten dengan HDCP 2.2 dan jenis aliran konten diatur ke 1. Jika HDCP gagal terlibat atau jenis aliran konten tidak dapat diatur ke 1, pemutaran ke port HDMI/DVI diblokir.

400 Windows 10 tidak pernah meneruskan konten video digital terkompresi ke output, terlepas dari nilai OPL berikutnya. Untuk informasi selengkapnya tentang konten video digital terkompresi, lihat Aturan Kepatuhan untuk Produk PlayReady. N/A\*
500

* Tidak semua nilai untuk tingkat perlindungan output dapat diatur oleh server lisensi. Untuk informasi selengkapnya, lihat Aturan Kepatuhan PlayReady.

Audio

OPL Audio digital terkompresi Audio digital tidak dikompresi Audio Analog atau USB
HDMI, DisplayPort, MHL HDMI, DisplayPort, MHL Apa pun
100 Meneruskan konten Meneruskan konten Meneruskan konten
150 TIDAK meneruskan konten
200
250 Meneruskan konten saat HDCP terlibat pada HDMI, DisplayPort, atau MHL, atau ketika SCMS terlibat dan diatur ke CopyNever
300 Meneruskan konten saat HDCP terlibat pada HDMI, DisplayPort, atau MHL

Miracast

PlayReady DRM memungkinkan Anda memutar konten melalui output Miracast segera setelah HDCP 2.0 atau yang lebih baru terlibat. Namun, pada Windows 10, Miracast dianggap sebagai output digital. Untuk informasi selengkapnya tentang skenario Miracast, lihat Aturan Kepatuhan PlayReady. Tabel berikut menguraikan pemetaan antara berbagai OPL dalam lisensi PlayReady dan bagaimana PlayReady DRM memberlakukannya pada output Miracast.

OPL Audio digital terkompresi Audio digital tidak dikompresi Video digital terkompresi Video digital yang tidak dikompresi
100 Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten TIDAK akan diteruskan Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten TIDAK akan diteruskan N/A\* Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten TIDAK akan diteruskan
150 TIDAK meneruskan konten N/A\*
200
250 Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten TIDAK akan diteruskan
270 N/A\*
300 Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten TIDAK akan diteruskan TIDAK meneruskan konten

**Ketika pembatasan jenis HDCP TIDAK ditentukan:** Meneruskan konten saat HDCP 2.0 atau yang lebih baru terlibat. Jika gagal terlibat, konten tidak diteruskan.

**Ketika pembatasan jenis HDCP DITENTUKAN:** Meneruskan konten dengan HDCP 2.2 dan jenis aliran konten diatur ke 1. Jika HDCP gagal terlibat atau jenis aliran konten tidak dapat diatur ke 1, ITU TIDAK meneruskan konten.

400 N/A\* Windows 10 tidak pernah meneruskan konten video digital terkompresi ke output, terlepas dari nilai OPL berikutnya. Untuk informasi selengkapnya tentang konten video digital terkompresi, lihat Aturan Kepatuhan untuk Produk PlayReady. N/A\*
500

* Tidak semua nilai untuk tingkat perlindungan output dapat diatur oleh server lisensi. Untuk informasi selengkapnya, lihat Aturan Kepatuhan PlayReady.

Pembatasan output eksplisit tambahan

Tabel berikut menjelaskan DRM PlayReady untuk Windows 10 implementasi pembatasan perlindungan output video digital eksplisit.

Skenario GUID Jika... Maka...
Ukuran dekode resolusi efektif maksimum 9645E831-E01D-4FFF-8342-0A720E3E028F Output yang terhubung adalah: output video digital, Miracast, HDMI, DVI, dll.

Meneruskan konten saat dibatasi ke:

  • (a) lebar bingkai harus kurang dari atau sama dengan lebar bingkai maksimum dalam piksel dan tinggi bingkai kurang dari atau sama dengan tinggi bingkai maksimum dalam piksel, atau
  • (b) tinggi bingkai harus kurang dari atau sama dengan lebar bingkai maksimum dalam piksel dan lebar bingkai kurang dari atau sama dengan tinggi bingkai maksimum dalam piksel
Pembatasan jenis HDCP ABB2C6F1-E663-4625-A945-972D17B231E7 Output yang terhubung adalah: output video digital, Miracast, HDMI, DVI, dll. Meneruskan konten dengan HDCP 2.2 dan jenis aliran konten diatur ke 1. Jika HDCP 2.2 gagal terlibat atau jenis aliran konten tidak dapat diatur ke 1, itu TIDAK meneruskan konten. Tingkat perlindungan output video digital yang tidak dikompresi dari nilai yang lebih besar dari atau sama dengan 271 juga harus ditentukan

Tabel berikut menjelaskan DRM PlayReady untuk Windows 10 implementasi pembatasan perlindungan output video analog eksplisit.

Skenario GUID Jika... Maka...
Monitor komputer analog D783A191-E083-4BAF-B2DA-E69F910B3772 Output yang terhubung adalah: VGA, analog DVI–, dll. SWDRM: PC akan membatasi resolusi efektif hingga 520.000 epx per bingkai dan meneruskan konten HWDRM: TIDAK meneruskan konten
Komponen Analog 811C5110-46C8-4C6E-8163-C0482A15D47E Output yang tersambung adalah: komponen SWDRM: PC akan membatasi resolusi efektif hingga 520.000 epx per bingkai dan meneruskan konten HWDRM: TIDAK meneruskan konten
Output TV Analog 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 Analog TV OPL kurang dari 151 CGMS-A harus dilibatkan
225CD36F-F132-49EF-BA8C-C91EA28E4369 Analog TV OPL kurang dari 101 dan lisensi tidak berisi 2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3 Keterlibatan CGMS-A harus dicoba, tetapi konten dapat diputar terlepas dari hasilnya
Kontrol perolehan otomatis dan garis warna C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA Meneruskan konten dengan resolusi kurang dari atau sama dengan 520.000 px ke output TV analog Mengatur AGC hanya untuk video komponen dan mode PAL saat resolusi kurang dari 520.000 px dan mengatur informasi AGC dan garis warna untuk NTSC ketika resolusi kurang dari 520.000 px, menurut tabel 3.5.7.3. dalam Aturan Kepatuhan
Output digital saja 760AE755-682A-41E0-B1B3-DCDF836A7306 Output yang tersambung adalah analog Tidak meneruskan konten

Catatan

Saat menggunakan dongle adaptor seperti "Mini DisplayPort ke VGA" untuk pemutaran, Windows 10 melihat output sebagai output video digital, dan tidak dapat menerapkan kebijakan video analog.

Tabel berikut menjelaskan DRM PlayReady untuk implementasi Windows 10 yang memungkinkan pemutaran dalam keadaan lain.

Skenario GUID Jika... Maka...
Output tidak diketahui 786627D8-C2A6-44BE-8F88-08AE255B01A7 Jika output tidak dapat ditentukan secara wajar, atau OPM tidak dapat dibuat dengan driver grafis SWDRM: Meneruskan konten HWDRM: TIDAK meneruskan konten
Output yang tidak diketahui dengan penyempurnaan B621D91F-EDCC-4035-8D4B-DC71760D43E9 Jika output tidak dapat ditentukan secara wajar, atau OPM tidak dapat dibuat dengan driver grafis SWDRM: PC akan membatasi resolusi efektif hingga 520.000 epx per bingkai dan meneruskan konten HWDRM: TIDAK meneruskan konten

Prasyarat

Sebelum Anda mulai membuat aplikasi UWP yang dilindungi PlayReady, perangkat lunak berikut perlu diinstal pada sistem Anda:

  • Windows 10.
  • Jika Anda mengkompilasi salah satu sampel untuk PlayReady DRM untuk aplikasi UWP, Anda harus menggunakan Microsoft Visual Studio 2015 atau yang lebih baru untuk mengkompilasi sampel. Anda masih dapat menggunakan Microsoft Visual Studio 2013 untuk mengkompilasi salah satu sampel dari PlayReady DRM untuk Aplikasi Bursa Windows 8.1.

Panduan migrasi aplikasi PlayReady UWP

Bagian ini mencakup informasi tentang cara memigrasikan aplikasi PlayReady Windows 8.x Store yang ada ke Windows 10.

Namespace layanan untuk aplikasi PlayReady UWP di Windows 10 diubah dari Microsoft.Media.PlayReadyClient ke Windows.Media.Protection.PlayReady. Ini berarti Anda harus mencari dan mengganti namespace lama dengan yang baru dalam kode Anda. Anda masih akan mereferensikan file winmd. Ini adalah bagian dari windows.media.winmd pada sistem operasi Windows 10. Ini di windows.winmd sebagai bagian dari Windows SDK TH. Untuk UWP, ini dirujuk di windows.foundation.univeralappcontract.winmd.

Untuk memutar kembali konten definisi tinggi (HD) yang dilindungi PlayReady (1080p) dan konten definisi ultra-tinggi (UHD), Anda harus menerapkan DRM perangkat keras PlayReady. Untuk informasi tentang cara menerapkan DRM perangkat keras PlayReady, lihat DRM Perangkat Keras.

Beberapa konten tidak didukung di DRM perangkat keras. Untuk informasi tentang menonaktifkan DRM perangkat keras dan mengaktifkan DRM perangkat lunak, lihat Mengambil alih DRM Perangkat Keras.

Mengenai manajer perlindungan media, pastikan kode Anda memiliki pengaturan berikut jika belum:

var mediaProtectionManager = new Windows.Media.Protection.MediaProtectionManager();

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemId"] = 
             '{F4637010-03C3-42CD-B932-B48ADF3A6A54}'
var cpsystems = new Windows.Foundation.Collections.PropertySet();
cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = 
                "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput";
mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;

mediaProtectionManager.Properties["Windows.Media.Protection.MediaProtectionContainerGuid"] = 
                "{9A04F079-9840-4286-AB92-E65BE0885F95}";

Secara proaktif memperoleh lisensi non-persisten sebelum pemutaran

Bagian ini menjelaskan cara memperoleh lisensi non-persisten secara proaktif sebelum pemutaran dimulai.

Dalam versi PlayReady DRM sebelumnya, lisensi non-persisten hanya dapat diperoleh secara reaktif selama pemutaran. Dalam versi ini, Anda dapat memperoleh lisensi non-persisten secara proaktif sebelum pemutaran dimulai.

  1. Buat sesi pemutaran secara proaktif di mana lisensi non-persisten dapat disimpan. Contohnya:

    var cpsystems = new Windows.Foundation.Collections.PropertySet();       
    cpsystems["{F4637010-03C3-42CD-B932-B48ADF3A6A54}"] = "Windows.Media.Protection.PlayReady.PlayReadyWinRTTrustedInput"; // PlayReady
    
    var pmpSystemInfo = new Windows.Foundation.Collections.PropertySet();
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemId"] = "{F4637010-03C3-42CD-B932-B48ADF3A6A54}";
    pmpSystemInfo["Windows.Media.Protection.MediaProtectionSystemIdMapping"] = cpsystems;
    var pmpServer = new Windows.Media.Protection.MediaProtectionPMPServer( pmpSystemInfo );
    
  2. Ikat sesi pemutaran tersebut ke kelas akuisisi lisensi. Contohnya:

    var licenseSessionProperties = new Windows.Foundation.Collections.PropertySet();
    licenseSessionProperties["Windows.Media.Protection.MediaProtectionPMPServer"] = pmpServer;
    var licenseSession = new Windows.Media.Protection.PlayReady.PlayReadyLicenseSession( licenseSessionProperties );
    
  3. Buat permintaan layanan lisensi. Contohnya:

    var laSR = licenseSession.CreateLAServiceRequest();
    
  4. Lakukan akuisisi lisensi menggunakan permintaan layanan yang dibuat dari langkah 3. Lisensi akan disimpan dalam sesi pemutaran.

  5. Ikat sesi pemutaran ke sumber media untuk pemutaran. Contohnya:

    licenseSession.configureMediaProtectionManager( mediaProtectionManager );
    videoPlayer.msSetMediaProtectionManager( mediaProtectionManager );
    

Kueri untuk kapabilitas perlindungan

Dimulai dengan Windows 10, versi 1703, Anda dapat mengkueri kemampuan DRM HW, seperti kodek dekode, resolusi, dan perlindungan output (HDCP). Kueri dilakukan dengan metode IsTypeSupported yang mengambil string yang mewakili kemampuan yang dukungannya dikueri dan string yang menentukan sistem kunci yang diterapkan kueri. Untuk daftar nilai string yang didukung, lihat halaman referensi API untuk IsTypeSupported. Contoh kode berikut mengilustrasikan penggunaan metode ini.

using namespace Windows::Media::Protection;

ProtectionCapabilities^ sr = ref new ProtectionCapabilities();

ProtectionCapabilityResult result = sr->IsTypeSupported(
L"video/mp4; codecs=\"avc1.640028\"; features=\"decode-bpp=10,decode-fps=29.97,decode-res-x=1920,decode-res-y=1080\"",
L"com.microsoft.playready");

switch (result)
{
    case ProtectionCapabilityResult::Probably:
    // Queue up UHD HW DRM video
    break;

    case ProtectionCapabilityResult::Maybe:
    // Check again after UI or poll for more info.
    break;

    case ProtectionCapabilityResult::NotSupported:
    // Do not queue up UHD HW DRM video.
    break;
}

Tambahkan perhentian aman

Bagian ini menjelaskan cara menambahkan perhentian aman ke aplikasi UWP Anda.

Penghentian aman menyediakan sarana bagi perangkat PlayReady untuk dengan percaya diri menegaskan ke layanan streaming media bahwa pemutaran media telah berhenti untuk konten tertentu. Kemampuan ini memastikan layanan streaming media Anda memberikan penegakan dan pelaporan batasan penggunaan yang akurat pada perangkat yang berbeda untuk akun tertentu.

Ada dua skenario utama untuk mengirim tantangan berhenti aman:

  • Ketika presentasi media berhenti karena akhir konten tercapai atau ketika pengguna menghentikan presentasi media di suatu tempat di tengah.
  • Ketika sesi sebelumnya berakhir secara tak terduga (misalnya, karena sistem atau crash aplikasi). Aplikasi ini perlu mengkueri, baik saat memulai atau mematikan, untuk sesi berhenti aman yang luar biasa dan mengirim tantangan yang terpisah dari pemutaran media lainnya.

Untuk contoh implementasi penghentian aman, lihat file securestop.cs dalam sampel PlayReady yang terletak di Browser Sampel Kode.

Menggunakan PlayReady DRM di Xbox One

Untuk menggunakan PlayReady DRM di aplikasi UWP di Xbox One, Anda harus terlebih dahulu mendaftarkan akun Pusat Mitra yang Anda gunakan untuk menerbitkan aplikasi agar otorisasi menggunakan PlayReady. Anda dapat melakukannya dengan salah satu dari dua cara ini:

  • Minta kontak Anda di izin permintaan Microsoft.
  • Ajukan otorisasi dengan mengirim akun Pusat Mitra dan nama perusahaan Anda ke pronxbox@microsoft.com.

Setelah menerima otorisasi, Anda harus menambahkan tambahan <DeviceCapability> ke manifes aplikasi. Anda harus menambahkan ini secara manual karena saat ini tidak ada pengaturan yang tersedia di Designer Manifes Aplikasi. Ikuti langkah-langkah berikut untuk mengonfigurasinya:

  1. Dengan proyek terbuka di Visual Studio, buka Penjelajah Solusi dan klik kanan Package.appxmanifest.

  2. Pilih Buka Dengan... , pilih Editor XML (Teks) , dan klik OK.

  3. <Capabilities> Di antara tag, tambahkan yang berikut ini <DeviceCapability>:

    <DeviceCapability Name="6a7e5907-885c-4bcb-b40a-073c067bd3d5" />
    
  4. Simpan file.

Terakhir, ada satu pertimbangan terakhir saat menggunakan PlayReady di Xbox One: pada kit pengembangan, ada batas SL150 (artinya, mereka tidak dapat memainkan konten SL2000 atau SL3000). Perangkat ritel dapat memutar konten dengan tingkat keamanan yang lebih tinggi, tetapi untuk menguji aplikasi Anda pada kit dev, Anda harus menggunakan konten SL150. Anda dapat menguji konten ini dengan salah satu cara berikut:

  • Gunakan konten pengujian yang dikumpulkan yang memerlukan lisensi SL150.
  • Terapkan logika sehingga hanya akun pengujian terautentikasi tertentu yang dapat memperoleh lisensi SL150 untuk konten tertentu.

Gunakan pendekatan yang paling masuk akal untuk perusahaan dan produk Anda.

Lihat juga