Huawei WisePlay DRM Nedir, Nasıl Kullanılır?

Zehra Yılmaz
Huawei Developers - Türkiye
3 min readDec 11, 2020

Herkese merhabalar, bu yazımda Huawei’in geliştirmiş olduğu WisePlay DRM’in ne olduğundan, basitçe uygulamanıza nasıl entegre edebileceğinizden bahsedeceğim, DRM tanımı ile başlayalım.

DRM Nedir?

DRM (Digital Rights Management) türkçesiyle “Dijital Haklar Yöenetimi”, dijital medyaların, lisans haklarını koruma amacıyla geliştirilmiş kontrol sistemidir. Günümüzde, gelişen teknoloji versilesi ile dijital medya içeriklerini kopyalamak, dağıtmak oldukça kolaylaştı, DRM’in amacı dijital medyalarınızı, istenmeyen bu yasadışı kopyalama ve dağıtımdan kaçınmak için, lisans yardımıyla kontrol altına alabilmektir.

Huawei WisePlay DRM Nedir?

Huawei tarafından geliştirilen WisePlay DRM, bizlere dijital içerik telif hakkı koruma yetenekleriyle yazılım ve donanım düzeyinde DRM yetkinlikleri sağlıyor.

WisePlay DRM’in desteklediği akış içeriği formatları:

  • fMP4 DASH
  • fMP4 HLS
  • TS HLS

WisePlay DRM bizlere en sık kullanılan uyarlanabilir akış içeriği formatlarını sunuyor. Desteklenen bu formatlar özelinde medya içerik lisanslarınızı güvenle kontrol altında tutabilirsiniz.

WisePlay DRM’in istemci API’leri üçüncü parti framework API’leri temel alınarak geliştirilmiş. Bu API’ler hakkındaki detaylı bilgilendirmeye erişmek için MediaDrm ve MediaCodec sayfalarına göz gezdirebilirsiniz.

Temel özelliklerden önce, MediaDrm nesnesini oluşturma ve WisePlay DRM UUID kullanmayı öğrenelim.

Ön Hazırlıklar

Öncelikle, bir proje oluşturup WisePlay DRM servisini aktifleştirmekle başlayacağız. Bunun için konfigürasyon sayfasını inceleyebilirsiniz.

Projeyi oluşturup WisePlay DRM servisini etkinleştirdikten sonraki ilk adımda, MediaDrm’in sağladığı isCryptoSchemeSupported(UUID) metodu ile WisePlay DRM UUD’nin desteklenip desteklenmediğini kontrol edeceğiz

NOT: WisePlay DRM UUID 3d5e6d35–9b9a-41e8-b843-dd3c6e72c42c.

Sorunsuz bir şekilde session’ı başlatabildiysek, temel özelliklerle devam edebiliriz.

WisePlay DRM ile Lisansa Erişim

Yukarıda çağırdığımız openSession() metodundan sonra , lisans request’in body’sinde bulunan KeyRequest nesnesine erişmek için , MediaDrm nesnesi üzerinden getKeyRequest() metodunu çağırın. Parametreleriyse aşağıdaki şekilde :

  • sessionId = openSession() metodundan dönen session ID.
  • keyType = bu parametre eğer online lisans elde etmek istiyorsanız, MediaDrm.KEY_TYPE_STREAMING, offline lisans elde etmek istiyorsanız MediaDrm.KEY_TYPE_OFFLINE, lisansı silmek istiyorsanız MediaDrm.KEY_TYPE_RELEASE olarak ayarlanmalı.
  • initData = Eğer keyType, MediaDrm.KEY_TYPE_STREAMING veya MediaDrm.KEY_TYPE_OFFLINE olarak ayarlanmışsa, initData’yı PSSH Box değerine ayarlayın. Psshbox’ın değeri bir medya dizin dosyasından elde edilebilir. (Değer, Dash akışları için MPD dosyasından ve HLS akışları için M3U8 dosyasından elde edilir.) keyType MediaDrm.KEY_TYPE_RELEASE olarak ayarlanmışsa, initData parametresi boş bırakılabilir.
  • mimeType = ortam türü, örneğin, video/mp4 veya video/webm. Lisansın silinmesi için bu parametre boş bırakılabilir.
  • optionalParameters = Bu parametreyi boş bırakın.

Request header’da content-type’ı application /json olarak ayarlayın ve request body kısmına önceki adımda elde edilen KeyRequest’in getData() metodunu kullanarak elde ettiğiniz verileri koyun. Oluşturduğunuz request’i çevrim içi olarak POST modunda yollayın.

Yukarıdaki örnek kodda, çevrim içi lisansa erişim sağlamış olduk,çevrim dışı lisansı elde etmek için aynı işlemi keyType = MediaDrm.KEY_TYPE_OFFLINE olacak şekilde uygulamanız gerekiyor.

Çevrim Dışı Lisans ile İçerik Oynatma

Çevrim dışı modda içerik oynatırken, öncelikle MediaDrm nesnesi üzerinden restoreKeys() metodunu çağırmanız gerekiyor, bu metod için iki parametreye ihtiyacınız olacak, bunlar :

  • keySetId = Daha önceden elde ettiğiniz çevrim dışı lisans üzerinden erişebileceğiniz, lisansın keySetId’si.
  • sessionId = openSession() metodunu çağırdığınızda dönen sessionId.

restoreKeys() metodu hata vermezse, içeriğinizi elde ettiğniz lisans ile oynatabilirsiniz. restoreKeys() metodunda hata alıyorsanız, lisansın süresi dolmuş veya keySetId mevcut olmayabilir.

İçerik Oynatma Sırasında Çevrim Dışı Lisansın Dinlenmesi

İçerik oynatılırken çevrimdışı lisansları gözlemlemek için, MediaDrm nesnesinin üzerinden erişebileceğiniz setOnEventListener() metodunu kullanabilirsiniz.

Çevrim Dışı Lisansın Silinmesi

Çevrim dışı lisansı silmek için gereken adımlar, lisansa erişim için uyguladığmız adımlarla sadece bi yönden ayrılıyor : getKeyRequest() metodunda bulunan keyType parametresini MediaDrm.KEY_TYPE_RELEASE olacak şekilde değiştirilmesi. Aynı adımları uyguladığınızda, elinizdeki çevrim dışı lisansı silmiş olacaksınız.

WisePlay DRM servisinin kullanımı kısaca bu şekilde, daha fazla detay ve sınırlandırmalar için, Huawei WisePlay DRM sayfasını inceleyebilirsiniz.

--

--