[AS3]编写元数据和提示点的回调方法
当播放器收到特定元数据或到达特定提示点时,可以在应用程序中触发动作。当这些事件发生时,必须将特定回调方法用作事件处理函数。NetStream 类指定了在播放期间可发生的以下元数据事件:onCuePoint(仅限 FLV 文件)、onImageData、onMetaData、onPlayStatus、onTextData 和 onXMPData。
必须为这些处理函数编写回调方法,否则,Flash Player 可能会引发错误。例如,以下代码播放 SWF 文件所在文件夹中名为 video.flv 的 FLV 文件:
- var nc:NetConnection = new NetConnection();
- nc.connect(null);
- var ns:NetStream = new NetStream(nc);
- ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
- ns.play("video.flv");
- function asyncErrorHandler(event:AsyncErrorEvent):void
- {
- trace(event.text);
- }
- var vid:Video = new Video();
- vid.attachNetStream(ns);
- addChild(vid);
上面的代码加载一个名为 video.flv 的本地视频文件并侦听要调度的 asyncError (AsyncErrorEvent.ASYNC_ERROR)。当本机异步代码中引发异常时调度此事件。在本例中,当视频文件中包含元数据或提示点信息,并且未定义相应的侦听器时,将调度此事件。如果您对视频文件的元数据或提示点信息不感兴趣,则可以使用上面的代码处理 asyncError 事件并忽略错误。如果 FLV 中有元数据和多个提示点,则 trace() 函数将显示以下错误消息:
- Error #2095: flash.net.NetStream was unable to invoke callback onMetaData.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
发生错误的原因是 NetStream 对象找不到 onMetaData 或 onCuePoint 回调方法。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例