(仅限 AIR)
flash.events
public class DRMErrorEvent
继承DRMErrorEvent Inheritance ErrorEvent Inheritance TextEvent Inheritance Event Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

在 NetStream 对象尝试播放数字权限管理 (DRM) 加密的文件并遇到与 DRM 相关的错误时,AIR 将调度 DRMErrorEvent 对象。例如,当内容提供程序不支持执行查看的应用程序,或可能由于用户未购买内容而导致用户授权失败时,调度 DRMErrorEvent 对象。

对于无效的用户凭据,DRMAuthenticateEvent 对象将重复调度该对象来处理错误,直到用户输入有效的凭据,或者 AIR 应用程序拒绝进一步的尝试。应用程序应该侦听任何其他 DRM 错误事件,以便检测、标识和处理与 DRM 相关的错误。

此类提供一些属性,其中包含引发异常的对象、错误代码以及包含错误相关信息的子错误代码和文本消息(如果适用)。

错误代码子错误代码错误详细信息说明
3300 Adobe Policy Server 错误代码 应用程序检测到与内容关联的凭证无效。
3301 0 用户身份验证失败。
3302 0 Flash Media Rights Management Server (FMRMS) 不支持安全套接字层 (SSL)。
3303 0 内容已过期,不能用于查看。
3304 0 用户授权失败。即使用户经过身份验证,也可能发生这种情况,例如,如果用户尚未购买查看内容所需的权限。
3305 0 服务器 URL 无法连接到服务器。
3306 0 需要更新客户端;Flash Media Rights Management Server 需要新的数字权限管理客户端引擎。
3307 0 通用内部数字权限管理失败。
3308 详细解密错误代码 不正确的许可证密钥。
3309 0 视频内容已损坏。
3310 0 publisherID:applicationID 执行查看的应用程序的 ID 与内容发布者支持的有效 ID 不匹配。内容提供程序不支持该应用程序。
3311 0 Min=x:max=y 应用程序版本与凭证中指定的版本不匹配。
3312 0 与加密内容关联的凭证验证失败,指示内容可能已损坏。
3313 0 无法将与加密内容关联的凭证保存到 Microsafe。
3314 0 FLV 标头完整性验证失败,指示内容可能已损坏。
3315 0 不允许远程回放 DRM 保护的内容。
3316 0 缺少 AdobeCP 模块。
3317 0 加载 AdobeCP 模块失败。
3318 0 找到的 AdobeCP 版本不兼容。
3319 0 缺少 AdobeCP API 入口点。
3320 0 AdobeCP 模块未经过身份验证。

查看示例

另请参见

flash.net.NetStream
DRMErrorEvent.DRM_ERROR


公共属性
 属性定义方
 Inheritedbubbles : Boolean
[只读 (read-only)] 指示事件是否为冒泡事件。
Event
 Inheritedcancelable : Boolean
[只读 (read-only)] 指示是否可以阻止与事件相关联的行为。
Event
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  contentData : DRMContentData
媒体文件的 DRMContentData。
DRMErrorEvent
 InheritedcurrentTarget : Object
[只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。
Event
 InheritedAIR-only errorID : int
[只读 (read-only)] 包含与特定错误相关联的引用数字。
ErrorEvent
 InheritedeventPhase : uint
[只读 (read-only)] 事件流中的当前阶段。
Event
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  AIR-only subErrorID : int
[只读 (read-only)] 指示有关基本问题的更多详细信息的错误 ID。
DRMErrorEvent
 Inheritedtarget : Object
[只读 (read-only)] 事件目标。
Event
 Inheritedtext : String
在 textInput 事件中,由用户输入的字符或字符序列。
TextEvent
 Inheritedtype : String
[只读 (read-only)] 事件的类型。
Event
公共方法
 方法定义方
  
AIR-only DRMErrorEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, inErrorDetail:String = "", inErrorCode:int = 0, insubErrorID:int = 0, inMetadata:DRMContentData = null)
创建一个 Event 对象,其中包含有关 DRM 错误事件的特定信息。
DRMErrorEvent
  
创建 DRMErrorEvent 对象的副本,并将每个属性的值设置为与原始属性值相匹配。
DRMErrorEvent
 Inherited
formatToString(className:String, ... arguments):String
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。
Event
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
检查是否已对事件调用 preventDefault() 方法。
Event
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
如果可以取消事件的默认行为,则取消该行为。
Event
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。
Event
 Inherited
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。
Event
  
返回一个字符串,其中包含 DRMErrorEvent 对象的所有属性。
DRMErrorEvent
 Inherited
返回指定对象的原始值。
Object
公共常量
 常量定义方
 InheritedACTIVATE : String = "activate"
[静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。
Event
 InheritedADDED : String = "added"
[静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。
Event
 InheritedCANCEL : String = "cancel"
[静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。
Event
 InheritedCHANGE : String = "change"
[静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。
Event
 InheritedCLEAR : String = "clear"
[静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。
Event
 InheritedCLOSE : String = "close"
[静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。
Event
 InheritedAIR-only CLOSING : String = "closing"
[静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。
Event
 InheritedCOMPLETE : String = "complete"
[静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
Event
 InheritedCONNECT : String = "connect"
[静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。
Event
 InheritedCOPY : String = "copy"
[静态] 定义 copy 事件对象的 type 属性值。
Event
 InheritedCUT : String = "cut"
[静态] 定义 cut 事件对象的 type 属性值。
Event
 InheritedDEACTIVATE : String = "deactivate"
[静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。
Event
 InheritedDISPLAYING : String = "displaying"
[静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。
Event
  AIR-only DRM_ERROR : String = "drmError"
[静态] DRMErrorEvent.DRM_ERROR 常量定义 drmError 事件对象的 type 属性值。
DRMErrorEvent
 InheritedENTER_FRAME : String = "enterFrame"
[静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。
Event
 InheritedERROR : String = "error"
[静态] 定义 error 事件对象的 type 属性值。
ErrorEvent
 InheritedEXIT_FRAME : String = "exitFrame"
[静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。
Event
 InheritedAIR-only EXITING : String = "exiting"
[静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。
Event
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。
Event
 InheritedFULLSCREEN : String = "fullScreen"
[静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。
Event
 InheritedID3 : String = "id3"
[静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。
Event
 InheritedINIT : String = "init"
[静态] Event.INIT 常量定义 init 事件对象的 type 属性值。
Event
 InheritedLINK : String = "link"
[静态] 定义 link 事件对象的 type 属性值。
TextEvent
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。
Event
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。
Event
 InheritedOPEN : String = "open"
[静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。
Event
 InheritedPASTE : String = "paste"
[静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。
Event
 InheritedREMOVED : String = "removed"
[静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。
Event
 InheritedRENDER : String = "render"
[静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。
Event
 InheritedRESIZE : String = "resize"
[静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。
Event
 InheritedSCROLL : String = "scroll"
[静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。
Event
 InheritedSELECT : String = "select"
[静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。
Event
 InheritedSELECT_ALL : String = "selectAll"
[静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。
Event
 InheritedTEXT_INPUT : String = "textInput"
[静态] 定义 textInput 事件对象的 type 属性值。
TextEvent
 InheritedUNLOAD : String = "unload"
[静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[静态] Event.USER_PRESENT 常量定义 userPresent 事件对象的 type 属性值。
Event
属性详细信息
contentData属性
contentData:DRMContentData  [读写]

媒体文件的 DRMContentData。

可以使用由 contentData 属性引用的对象从 DRMManager 凭证缓冲检索相关的 DRM 凭证。凭证属性描述可供用户使用的许可证,还可能会解释为何无法查看受 DRM 保护的内容。



实现
    public function get contentData():DRMContentData
    public function set contentData(value:DRMContentData):void
AIR-only subErrorID属性 
subErrorID:int  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

指示有关基本问题的更多详细信息的错误 ID。



实现
    public function get subErrorID():int
构造函数详细信息
AIR-only DRMErrorEvent()构造函数
public function DRMErrorEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, inErrorDetail:String = "", inErrorCode:int = 0, insubErrorID:int = 0, inMetadata:DRMContentData = null)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

创建一个 Event 对象,其中包含有关 DRM 错误事件的特定信息。将 Event 对象作为参数传递给事件侦听器。

参数
type:String (default = NaN) — 事件的类型。事件侦听器可以通过继承的 type 属性访问此信息。只有一种类型的 DRMAuthenticate 事件:DRMAuthenticateEvent.DRM_AUTHENTICATE
 
bubbles:Boolean (default = false) — 确定 Event 对象是否参与事件流的冒泡阶段。事件侦听器可以通过继承的 bubbles 属性访问此信息。
 
cancelable:Boolean (default = false) — 确定是否可以取消 Event 对象。事件侦听器可以通过继承的 cancelable 属性访问此信息。
 
inErrorDetail:String (default = "") — 错误的特定语法详细信息(如果适用)。
 
inErrorCode:int (default = 0) — 主要错误代码。
 
insubErrorID:int (default = 0) — 次要错误 ID。
 
inMetadata:DRMContentData (default = null)
方法详细信息
AIR-only clone()方法
override public function clone():Event

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

创建 DRMErrorEvent 对象的副本,并将每个属性的值设置为与原始属性值相匹配。

返回
Event — 其属性值与原始属性值匹配的新 DRMErrorEvent 对象。
AIR-only toString()方法 
override public function toString():String

运行时版本: AIR 1.0

返回一个字符串,其中包含 DRMErrorEvent 对象的所有属性。字符串的格式如下:

[DRMErrorEvent type=value bubbles=value cancelable=value eventPhase=value errroID=value subErrorID=value text=value

返回
String — 一个字符串,其中包含 DRMErrorEvent 对象的所有属性。
常量详细信息
AIR-only DRM_ERROR常量
public static const DRM_ERROR:String = "drmError"

语言版本: ActionScript 3.0
运行时版本: AIR 1.0

DRMErrorEvent.DRM_ERROR 常量定义 drmError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
errorID 分配给问题的数字错误代码。
subErrorID 指示有关基本问题的更多详细信息的错误代码。
target NetStream 对象。

另请参见

示例 如何使用示例
DRMErrorEventExample.as

package
{
    import flash.display.Sprite;
    import flash.events.AsyncErrorEvent;
    import flash.events.NetStatusEvent;
    import flash.events.DRMErrorEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;

    public class DRMVideoExample extends Sprite
    {
        var videoURL:String = "Video.flv";
        var videoConnection:NetConnection;
        var videoStream:NetStream;
        var video:Video = new Video();            

        public function DRMVideoExample()
        {
            videoConnection = new NetConnection();
            videoConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            videoConnection.connect(null);
        }

        private function connectStream():void {
            videoStream = new NetStream(videoConnection);
            videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            videoStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            videoStream.addEventListener(DRMErrorEvent.DRM_ERROR, drmErrorEventHandler);
            video.attachNetStream(videoStream);
            videoStream.play(videoURL);
            addChild(video);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: " + videoURL);
                    break;
            }
        }

        private function asyncErrorHandler(event:AsyncErrorEvent):void {
            // ignore AsyncErrorEvent events.
        }

        private function drmErrorEventHandler(event:DRMErrorEvent):void {
            trace(event.toString());
        }
     }
}