包 | flash.net.drm |
类 | public class DRMManager |
继承 | DRMManager EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
DRMManager.getDRMManager()
方法,您可以访问现有的 DRMManager 对象来执行下列 DRM 管理任务:
- 使用 DRMContentData 对象从媒体权限服务器预加载凭证。
- 使用 DRMContentData 对象查询本地缓存中的单个凭证。
- 重置所有凭证(仅限 AIR)
不提供用于枚举本地缓存中所有凭证的方法。
不要创建 DRMManager 类的实例。请使用静态 DRMManager.getDRMManager()
访问现有的 DRMManager 对象。
AIR 配置文件支持:所有桌面操作系统和 AIR for TV 设备均支持此功能,但移动设备不支持此功能。您可以使用 DRMManager.isSupported
属性在运行时测试是否受支持。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
isSupported : Boolean [静态] [只读]
如果当前平台支持 DRMManager 类,则 isSupported 属性设置为 true,否则,设置为 false。 | DRMManager | ||
networkIdleTimeout : Number [静态] | DRMManager |
方法 | 由以下参数定义 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将当前运行的设备添加到设备组。 | DRMManager | ||
对用户进行身份验证。 | DRMManager | ||
将事件调度到事件流中。 | EventDispatcher | ||
[静态]
返回单一 DRMManager 对象的实例。 | DRMManager | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
从许可证服务器中获取预览凭证,您可以使用此凭证让用户验证他们是否可以在特定计算机上播放内容。 | DRMManager | ||
从媒体权限服务器或本地凭证缓存加载凭证。 | DRMManager | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
将当前运行的设备从设备组中删除。 | DRMManager | ||
在 AIR 应用程序中,这将删除所有本地缓存的数字权限管理 (DRM) 凭证数据。 | DRMManager | ||
返回满足所有指定条件的许可证服务器的所有凭证。 | DRMManager | ||
设置用来与所指定服务器和域进行通信的身份验证令牌。 | DRMManager | ||
设置循环操作动态属性的可用性。 | Object | ||
DRMManager | |||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
如果用户在调用 authenticate() 方法后,通过媒体权限服务器的身份验证,DRMManager 将调度 DRMAuthenticationCompleteEvent 对象。 | DRMManager | |||
如果用户在调用 authenticate() 方法后,没有通过媒体权限服务器的身份验证,DRMManager 将调度 DRMAuthenticationErrorEvent 对象。 | DRMManager | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
如果无法从媒体权限服务器获得所需凭证,DRMManager 将调度 DRMErrorEvent 对象。 | DRMManager | |||
如果可以从媒体权限服务器获得所需凭证,DRMManager 将调度 DRMStatusEvent 对象。 | DRMManager |
isSupported | 属性 |
networkIdleTimeout | 属性 |
addToDeviceGroup | () | 方法 |
public function addToDeviceGroup(deviceGroup:DRMDeviceGroup, forceRefresh:Boolean = false):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 3.0, Flash Player 11.9 |
将当前运行的设备添加到设备组。
参数
deviceGroup:DRMDeviceGroup | |
forceRefresh:Boolean (default = false )
|
authenticate | () | 方法 |
public function authenticate(serverURL:String, domain:String, username:String, password:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
对用户进行身份验证。
侦听 authenticationComplete
和 authenticationError
事件来判断身份验证尝试的结果。多个 authenticate()
调用将进行排队。为 authenticationComplete
事件调度的 AuthenticationCompleteEvent 对象包含一个身份验证标记,您的应用程序可以保存该标记。
以后,可以使用所保存的身份验证标记(或通过其它方法下载的标记)与媒体权限服务器建立经身份验证的会话。要使用标记建立会话,请调用 DRMManager setAuthenticationToken()
方法。标记的属性(如到期日期)由生成该标记的服务器的设置确定。
重要说明(仅限 AIR):当用户的 Internet 连接经过需要身份验证的代理服务器时,authenticate()
方法不会成功。虽然此类用户无法预加载需要身份验证的 DRM 凭证,但通过开始播放并使用 NetStream setAuthenticationCredentials()
方法使用户登录到代理服务器和媒体权限服务器,应用程序可以获取凭证。一旦获得凭证,用户便可脱机查看相应内容(只要凭证代表的许可证允许脱机播放)。
参数
serverURL:String — 可以提供查看受保护内容所需的凭证的媒体权限服务器的 URL
| |
domain:String — 服务器上的域(并非网络或 Internet 域名)
| |
username:String — 用户名
| |
password:String — 用户密码
|
相关 API 元素
getDRMManager | () | 方法 |
public static function getDRMManager():DRMManager
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
返回单一 DRMManager 对象的实例。
每个安全域对应存在一个 DRMManager 实例。
返回DRMManager |
相关 API 元素
loadPreviewVoucher | () | 方法 |
public function loadPreviewVoucher(contentData:DRMContentData):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2, Flash Player 10.1 |
从许可证服务器中获取预览凭证,您可以使用此凭证让用户验证他们是否可以在特定计算机上播放内容。借助此功能,用户在购买和下载内容之前可以验证他们是否可以在自己的计算机上播放该内容。如果用户的计算机没有必要的输出保护功能或播放内容所需的软件,此功能会很有用。
与 loadVoucher()
类似,此方法是一个异步调用,在完成时发出 DRMStatusEvent,在发生错误时发出 DRMErrorEvent。
参数
contentData:DRMContentData |
loadVoucher | () | 方法 |
public function loadVoucher(contentData:DRMContentData, setting:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
从媒体权限服务器或本地凭证缓存加载凭证。
根据 setting
参数加载凭证:
- LoadVoucherSetting.FORCE_REFRESH:始终从媒体权限服务器下载凭证。
- LoadVoucherSetting.LOCAL_ONLY:仅从本地缓存加载凭证。
- LoadVoucherSetting.ALLOW_SERVER:如果可能,从本地缓存加载凭证,否则从服务器下载。
LoadVoucherSetting 类定义将用作 setting
参数的值的字符串常量。
成功加载凭证后,DRMManager 将调度 DRM 状态事件。一旦加载凭证,您的应用程序即可开始播放。可以在所调度的 DRMStatusEvent 对象的 voucher
属性中获得所加载的凭证。可以使用此凭证对象向用户显示关联的媒体权限信息。
如果无法从媒体权限服务器加载凭证,则调度 DRM 错误事件。所调度的 DRMErrorEvent 对象的 errorID
属性表示失败的原因。失败的常见原因包括在用户处于脱机状态时尝试连接到媒体权限服务器以及在用户未登录时尝试加载凭证。您的应用程序可以对这些错误作出响应并采取纠正措施。例如,如果需要身份验证凭据才能下载凭证,则可以提示用户输入其帐户用户名和密码,调用 DRMManager authenticate()
方法,然后尝试再次加载凭证。
如果无法从本地缓存获取凭证,并使用了 localOnly
设置,则不会调度 DRMErrorEvent。而是将调度一个 DRM 状态事件。DRMStatusEvent 对象的 detail
属性仍为 DRM.voucherObtained
,但 voucher
属性为 null
。
参数
contentData:DRMContentData — 受 DRM 保护的媒体文件中的 DRMContentData 对象
| |
setting:String — 确定凭证是从本地缓存还是从媒体权限服务器检索的
|
removeFromDeviceGroup | () | 方法 |
public function removeFromDeviceGroup(deviceGroup:DRMDeviceGroup):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 3.0, Flash Player 11.9 |
将当前运行的设备从设备组中删除。
参数
deviceGroup:DRMDeviceGroup |
resetDRMVouchers | () | 方法 |
public function resetDRMVouchers():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 11.8 |
在 AIR 应用程序中,这将删除所有本地缓存的数字权限管理 (DRM) 凭证数据。对基于浏览器的应用程序,它仅在发生 3322、3346、3323、3326 错误时才可用,并且其行为类似于“受保护内容播放设置”面板。
应用程序必须重新下载所需的凭证,用户才能访问加密的内容。调用此函数等同于调用 Netstream.resetDRMVouchers()
。
引发
IOError — 无法删除凭证数据。
|
相关 API 元素
returnVoucher | () | 方法 |
public function returnVoucher(inServerURL:String, immediateCommit:Boolean, licenseID:String, policyID:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11.8, AIR 3.8 |
返回满足所有指定条件的许可证服务器的所有凭证。当返回一个凭证时,它将从磁盘存储和内存中予以删除。这不会中断当前正使用所返回凭证进行视频播放的 Netstream 和 AVStream,但是会禁止以后的播放。如果成功,DRMManager 将发出 DRMReturnVoucherCompleteEvent;如果错误,DRMManager 将发出 DRMReturnVoucherErrorEvent。如果 inServerURL 为 null,或者 licenseID 和 policyID 都为 null,将引发 ArgumentError。
参数
inServerURL:String — 许可证服务器 URL,返回的许可证从此处下载。
| |
immediateCommit:Boolean — 保留。唯一支持的值为 true。
| |
licenseID:String — (可选)将返回匹配此 licenseID 的凭证。如果为 null,将改用 policyID。
| |
policyID:String — (可选)将返回匹配此 policyID 的凭证。如果为 null,将改用 licenseID。如果 licenseID 和 policyID 都为非 null,则只返回同时匹配 licenseID 和 policyID 的凭证。
|
setAuthenticationToken | () | 方法 |
public function setAuthenticationToken(serverUrl:String, domain:String, token:ByteArray):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
设置用来与所指定服务器和域进行通信的身份验证令牌。
可以从成功调用 authenticate()
方法之后调度的 DRMAuthenticationCompleteEvent 对象的 token
属性中获得身份验证标记。自动为会话缓存标记,但您可以使用 setAuthenticationToken()
方法直接管理标记。
设置标记将覆盖服务器和域中任何现有的已缓存标记。将 token
参数设置为 null
可清除已缓存的标记。
参数
serverUrl:String — 媒体权限服务器的 URL
| |
domain:String — DRMContentData
| |
token:ByteArray — 身份验证标记
|
storeVoucher | () | 方法 |
authenticationComplete | 事件 |
flash.events.DRMAuthenticationCompleteEvent
属性 DRMAuthenticationCompleteEvent.type =
flash.events.DRMAuthenticationCompleteEvent.AUTHENTICATION_COMPLETE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
如果用户在调用 authenticate()
方法后,通过媒体权限服务器的身份验证,DRMManager 将调度 DRMAuthenticationCompleteEvent 对象。
authenticationError | 事件 |
flash.events.DRMAuthenticationErrorEvent
属性 DRMAuthenticationErrorEvent.type =
flash.events.DRMAuthenticationErrorEvent.AUTHENTICATION_ERROR
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
如果用户在调用 authenticate()
方法后,没有通过媒体权限服务器的身份验证,DRMManager 将调度 DRMAuthenticationErrorEvent 对象。
drmError | 事件 |
flash.events.DRMErrorEvent
属性 DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
如果无法从媒体权限服务器获得所需凭证,DRMManager 将调度 DRMErrorEvent 对象。
注意:当尝试从本地凭证缓存加载凭证(使用 localOnly
作为 source
参数)失败时,不会调度 DRMErrorEvent 对象。而改为调度 voucher
属性设置为 null
的 DRMStatusEvent 对象。
DRMErrorEvent.DRM_ERROR
常量定义 drmError
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
errorID | 分配给问题的数字错误代码。 |
subErrorID | 表示有关基本问题的更多详细信息的错误代码。 |
target | NetStream 对象。 |
drmStatus | 事件 |
flash.events.DRMStatusEvent
属性 DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.5, Flash Player 10.1 |
如果可以从媒体权限服务器获得所需凭证,DRMManager 将调度 DRMStatusEvent 对象。
DRMStatusEvent.DRM_STATUS
常量定义 drmStatus
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
detail | 说明状态事件上下文的字符串。 |
isAnonymous | 表示使用 DRM 加密保护的内容是否可用而不需要用户提供身份验证凭据。 |
isAvailableOffline | 表示使用 DRM 加密保护的内容是否可脱机使用。 |
offlineLeasePeriod | 可以脱机查看内容的剩余天数。 |
policies | DRM 状态事件的自定义对象。 |
target | NetStream 对象。 |
voucherEndDate | 凭证的绝对到期日期,此后,用户将无法再查看该内容 |
contentData | 内容的 DRMContentData |
voucher | 内容的 DRMVoucher 对象。 |
isLocal | 表示内容是否存储在本地文件系统上 |
Tue Jun 12 2018, 11:04 AM Z