NetStream クラスの DRM 関連のメンバーおよびイベント
Flash Player 10.1 以降、Adobe AIR 1.0 以降
NetStream クラスは、Flash Player または AIR アプリケーションと Flash Media Server またはローカルファイルシステムの間の接続の一方向のストリーミングを提供します(NetStream クラスはこれを発展させた形のダウンロードもサポートします)。NetStream オブジェクトは、NetConnection オブジェクト内のチャンネルです。NetStream クラスは次に示す 4 つの DRM 関連イベントを送出します。
イベント
|
説明
|
drmAuthenticate
(AIR のみ)
|
DRMAuthenticateEvent クラスで定義されています。このイベントが送出されるのは、NetStream オブジェクトが、再生の前に認証のためのユーザー資格情報を必要とする、保護されたコンテンツを再生しようとしたときです。
このイベントのプロパティには、ユーザー情報の取得および設定において使用できる header、usernamePrompt、passwordPrompt および urlPrompt プロパティが含まれます。このイベントは、NetStream オブジェクトが有効なユーザー情報を受け取るまで繰り返し発生します。
|
drmError
|
DRMErrorEvent クラスに定義され、NetStream オブジェクトが、保護されたコンテンツの再生を試み、DRM 関連エラーが発生したときに送出されます。例えば、ユーザー承認に失敗したときに DRM エラーイベントオブジェクトが送出されます。このエラーは、ユーザーがコンテンツを表示する権利を購入していない場合に発生します。また、コンテンツプロバイダーがアプリケーションの表示をサポートしていない場合にも発生します。
|
drmStatus
|
DRMStatusEvent クラスで定義されます。このイベントが送出されるのは、保護されたコンテンツが再生を開始する(ユーザーが認証され、コンテンツの再生を許可される)ときです。DRMStatusEvent オブジェクトには、証明書に関連する情報が含まれています。証明書情報には、コンテンツがオフラインで利用できるか、証明書の期限が切れたときにコンテンツを表示できなくなるかについての情報が含まれます。
|
status
|
events.StatusEvent に定義され、アプリケーションが NetStream.play() メソッドを呼び出して、保護されたコンテンツの再生を試みたときにみ送出されます。status コードプロパティの値は、「DRM.encryptedFLV」です。
|
NetStream クラスには、AIR のみで使用する、次の DRM 関連メソッドが含まれます。
メソッド
|
説明
|
resetDRMVouchers()
|
ローカルにキャッシュされたすべての電子著作権管理(DRM)証明書データを削除します。ユーザーが暗号化コンテンツにアクセスできるようにするには、アプリケーションで証明書をもう一度ダウンロードする必要があります。
例えば、次のコードではすべての証明書をキャッシュから削除します。
NetStream.resetDRMVouchers();
|
setDRMAuthenticationCredentials()
|
ユーザー名、パスワード、認証タイプで構成される認証情報のセットを認証のために NetStream オブジェクトに渡します。有効な暗号化タイプは、「drm」と「proxy」です。「drm」認証タイプを使用して、提供された情報は Flash Access に対して認証されます。「proxy」認証タイプを使用して、情報はプロキシサーバーに対して認証され、プロキシサーバーによって要求される資格情報に一致する必要があります。例えば、アプリケーションがプロキシサーバーに対して認証を行ってからユーザーがインターネットにアクセスできることを、企業がアプリケーションの要件として指定できます。proxy オプションによってこのような認証タイプを実現できます。匿名認証が使用される場合を除き、プロキシ認証の後、証明書を取得してコンテンツを再生するためにユーザーは引き続き Flash Access に対する認証を行う必要があります。2 回目は setDRMAuthenticationcredentials() を「drm」オプションと共に使用して、Flash Access に対する認証を行うことができます。
|
preloadEmbeddedMetadata()
|
ローカルのメディアファイルを解析して埋め込みメタデータを探します。DRM 関連のメタデータが見つかると、AIR によって onDRMContentData() コールバック関数が呼び出されます。
|
さらに、AIR では、NetStream オブジェクトは onDRMContentData() コールバック関数および onPlayStatus() コールバック関数を、preloadEmbeddedMetaData() メソッドの呼び出しの結果として呼び出します。onDRMContentData() 関数は、メディアファイル内で DRM メタデータが見つかった場合に呼び出されます。onPlayStatus() 関数は、ファイルが解析されたときに呼び出されます。onDRMContentData() 関数と onPlayStatus() 関数は、NetStream インスタンスに割り当てられた client オブジェクトで定義されている必要があります。同じ NetStream オブジェクトを使用して証明書の事前読み込みとコンテンツの再生を実行する場合は、再生を開始する前に、onPlayStatus() 呼び出しが preloadEmbeddedMetaData() によって生成されるのを待ちます。
次の AIR 用コードでは、ユーザー名(「administrator」)、パスワード(「password」)および「drm」認証タイプがユーザー認証に対して設定されます。setDRMAuthenticationCredentials() メソッドは、コンテンツプロバイダーにとって既知で受け入れられる情報に一致する資格情報を提供する必要があります。これらの資格情報は、ユーザーがコンテンツを表示できるようにするのと同じユーザー資格情報です。ビデオを再生するためのコード、およびビデオのストリームに対する正常な接続が確立していることを確認するためのコードは、ここには含まれていません。
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");
}