NetStream sınıfının DRM ilişkili üyeleri ve olayları
Flash Player 10.1 ve üstü, Adobe AIR 1.0 ve üstü
NetStream sınıfı, Flash Player veya bir AIR uygulamasıyla Flash Media Server veya yerel dosya sistemi arasında tek yönlü bir akış sağlar. (NetStream sınıfı ayrıca aşamalı indirmeyi de destekler.) Bir NetStream nesnesi, NetConnection nesnesinin içindeki kanaldır. NetStream sınıfı DRM ile ilgili dört olay gönderir:
Olay
|
Açıklama
|
drmAuthenticate
(Yalnızca AIR)
|
DRMAuthenticateEvent sınıfında tanımlanır. Bu olay bir NetStream nesnesi, oynatılmadan önce kimlik doğrulama için kullanıcı kimlik bilgisi gerektiren korumalı içeriği oynatmaya çalıştığında gönderilir.
Bu olayın özellikleri, kullanıcının kimlik bilgilerini almada ve ayarlamada kullanılabilen header, usernamePrompt, passwordPrompt ve urlPrompt özelliklerini içerir. Bu olay, NetStream nesnesi geçerli kullanıcı kimlik bilgilerini alana kadar tekrarlanır.
|
drmError
|
DRMErrorEvent sınıfında tanımlanıp bir NetStream nesnesi korumalı içeriği oynatmaya çalıştığında ve DRM ile ilgili bir hatayla karşılaştığında gönderilir. Örneğin DRM error olayı nesnesi, kullanıcı kimlik denetimi başarısız olduğunda gönderilir. Bu hata kullanıcı içeriği görmek için gereken hakları satın almadığından oluşabilir. İçerik sağlayıcısı uygulamanın görüntülenmesini desteklemediği için de oluşabilir.
|
drmStatus
|
DRMStatusEvent sınıfında tanımlanır. Bu olay, korumalı içerik oynamaya başladığında (kullanıcı doğrulandığında ve içeriği oynatmasına izin verildiğinde) gönderilir. DRMStatusEvent nesnesi makbuzla ilgili bilgiler içerir. Makbuz bilgileri, çevrimdışıyken veya makbuzun süresi dolduğunda ve içerik artık görüntülenemediğinde içeriğin kullanılabilir kılınıp kılınamayacağına dair bilgileri içerir.
|
status
|
events.StatusEvent içerisinde tanımlanır ve yalnızca uygulama korumalı içeriği oynatmaya çalıştığında NetStream.play() yöntemini çağırarak gönderilir. status kod özelliği "DRM.encryptedFLV" şeklindedir.
|
NetStream sınıfı yalnızca AIR’de kullanım için aşağıdaki DRM’ye özel yöntemlere içerir:
Yöntem
|
Açıklama
|
resetDRMVouchers()
|
Yerel olarak önbelleğe alınmış tüm dijital haklar yönetimi (DRM) makbuz bilgilerini siler. Kullanıcının şifreli içeriğe erişebilmesi için uygulamanın makbuzları yeniden indirmesi gerekir.
Örneğin, aşağıdaki kod tüm makbuzları önbellekten kaldırır:
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
Kimlik doğrulama için NetStream nesnesine kullanıcı adı, şifre ve kimlik doğrulamasından oluşan bir kimlik doğrulama bilgileri kümesi iletir. Geçerli kimlik denetimi türleri "drm" ve "proxy" türleridir. "drm" kimlik doğrulama türüyle, sağlanan kimlik bilgileri Flash Access için doğrulanır. "proxy" kimlik doğrulama türüyle, kimlik bilgileri proxy sunucusu için doğrulanır ve bilgilerin proxy sunucusu tarafından gerekli kılınanlarla eşleşmesi gerekir. Örneğin, bir kuruluş kullanıcı Internete erişmeden önce uygulamanın bir proxy sunucusu için kimlik doğrulaması yapmasını gerektirebilir. Proxy seçeneği bu tür kimlik doğrulamasına izin verir. Adsız kimlik doğrulama kullanılmadığı sürece, proxy kimlik doğrulamasından sonra kullanıcı yine de makbuzu almak ve içeriği oynatmak amacıyla Flash Access için kimlik doğrulaması yapmalıdır. Flash Access için kimlik doğrulaması yapmak üzere setDRMAuthenticationcredentials() öğesini “drm” seçeneğiyle ikinci kez kullanabilirsiniz.
|
preloadEmbeddedMetadata()
|
Gömülü meta veriler için bir yerel medya dosyasını ayrıştırır. DRM ilişkili meta veriler bulunduğunda, AIR onDRMContentData() geri çağırma işlevini çağırır.
|
Ayrıca, AIR’de bir NetStream nesnesi preloadEmbeddedMetaData() yöntemine yapılan çağrının sonucu olarak onDRMContentData() ve onPlayStatus() geri çağırma işlevlerini çağırır. Bir medya dosyasında DRM meta verileriyle karşılaşıldığında onDRMContentData() işlevi çağrılır. Dosya ayrıştırıldığında onPlayStatus() işlevi çağrılır. NetStream örneğine atanan client nesnesinde onDRMContentData() ve onPlayStatus() işlevleri tanımlanmalıdır. Makbuzları önceden yüklemek ve içeriği oynatmak için aynı NetStream nesnesini kullanıyorsanız, oynatmaya başlamadan önce preloadEmbeddedMetaData() tarafından oluşturulan onPlayStatus() çağrısını beklemelisiniz.
Aşağıdaki AIR kodunda kullanıcı adı (“administrator”), şifre (“password”) ve “drm” kimlik doğrulama türü, kullanıcının kimliğini denetlemek üzere ayarlanmıştır. setDRMAuthenticationCredentials() yöntemi, içerik sağlayıcısı tarafından bilinen ve kabul edilen kimlik bilgileriyle eşleşen kimlik bilgilerini sağlamak zorundadır. Bu kimlik bilgileri, kullanıcının içeriği görüntülemesine izin veren kullanıcı bilgileriyle aynıdır. Video oynatmaya ve video akışına başarılı bir bağlantı yapıldığını doğrulamaya ilişkin kod burada yer almamaktadır.
var connection:NetConnection = new NetConnection();
connection.connect(null);
var videoStream:NetStream = new NetStream(connection);
videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE,
drmAuthenticateEventHandler)
private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void
{
videoStream.setDRMAuthenticationCredentials("administrator", "password", "drm");
}