zoukankan      html  css  js  c++  java
  • flv回调事件处理函数

    /*
    可以在 FLV 文件中嵌入的提示点有两种类型。
    •  导航提示点:
    它指定 FLV 文件中的一个关键帧,而且其 time 属性对应于该关键帧。
    导航提示点经常被用作书签或入口点,以便用户在视频文件中导航。
    •  “事件”提示点:它由时间指定,而不管该时间是否对应于某个特定的关键帧。
    事件提示点通常代表视频中的某个时间,到达这个时间时可用于触发其它应用程序事件的情况就会发生。
    属性 说明
      name
       将提示点嵌入 FLV 文件时赋予提示点的名称。
      time
       提示点在视频文件回放期间的出现时间(以秒为单位)。
      type
       到达的提示点的类型:业己接提示点或“事件”提示点。
      parameters
       为此提示点指定的一个关联数组,它由名称/值对字符串组成。任何有效的字符串都可用于参数名或参数值。
      您可以在首次对 FLV 文件进行编码时,或者在“Flash 创作”工具中使用“视频导入”向导来导入视频剪辑时,
    在该 FLV 文件中定义提示点。
    onCuePoint() 会在回放期间对某个提示点所指定的时间,接收有关该提示点的信息。
    onMetaData() 会在视频文件中检索有关提示点的信息。不过它会在视频开始播放之前,获取有关所有提示点的信息。
    */
    var video:Video = new Video();
    addChild(video);

    var nc:NetConnection = new NetConnection();
    nc.connect(null);

    var ns:NetStream = new NetStream(nc);
    //使用空的 Object 忽略这些回调方法而不侦听 asyncError 事件
    ns.client = {};
    //将 NetStream 对象的 client 属性设置为一个自定义类 CustomClient,
    //
    该类为回调方法定义处理函数:
    //
    ns.client = new CustomClient();
    /*

    package
    {
    public class CustomClient
    {
    public function onMetaData(infoObject:Object):void
    {
    trace("metadata");
    }
    }
    }
    */

    ///////////////////////////////////////////////////////////////////
    /*
    扩展 NetStream 类、处理必要的 NetConnection 对象的创建
    *并处理 onMetaData 和 onCuePoint 回调处理函数方法
    *
    *var ns:CustomNetStream = new CustomNetStream();
    *ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
    *
    *package
    {
    import flash.net.NetConnection;
    import flash.net.NetStream;
    public class CustomNetStream extends NetStream
    {
    private var nc:NetConnection;
    public var onMetaData:Function;
    public var onCuePoint:Function;
    public function CustomNetStream()
    {
    onMetaData = metaDataHandler;
    onCuePoint = cuePointHandler;
    nc = new NetConnection();
    nc.connect(null);
    super(nc);
    }
    private function metaDataHandler(infoObject:Object):void
    {
    trace("metadata");
    }
    private function cuePointHandler(infoObject:Object):void
    {
    trace("cue point");
    }
    }
    }

    */
    ns.client.onMetaData = ns_onMetaData;
    ns.client.onCuePoint = ns_onCuePoint;

    video.attachNetStream(ns);
    /*本机异步代码中引发异常时调度此事件。
    在本例中,当视频文件中包含元数据或提示点信息,并且未定义相应的侦听器时,
    将调度此事件。如果您对视频文件的元数据或提示点信息不感兴趣,则可以使用
    上面的代码处理 asyncError 事件
    */
    ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
    ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv");
    function asyncErrorHandler(event:AsyncErrorEvent):void
    {
      trace("checkInfo:",event.text);
    }
    //此处理函数在调用 NetStream.play() 方法后、视频播放头前进之前触发。
    function ns_onMetaData(item:Object):void
    {
    trace("metaData");
    //根据对 FLV 文件进行编码所使用的软件,属性的列表会有所不同。
    for (var propName:String in item)
    {
    trace(propName + " = " + item[propName]);
    }

    // Resize video instance.
    video.width = item.width;
    video.height = item.height;
    // Center video instance on Stage.
    video.x = (stage.stageWidth - video.width) / 2;
    video.y = (stage.stageHeight - video.height) / 2;
    }

    function ns_onCuePoint(item:Object):void
    {
    trace("cuePoint");
    trace(item.name + "\t" + item.time);
    }
  • 相关阅读:
    9011,9012,9013,9014,8050,8550三极管的区别
    XP制动关机CMD命令
    搭建系统框架发现的三个Web.Config问题
    监听公众号返回按钮,直接退出到公众号页面
    微信公众号h5页面自定义分享
    博客园页面设置
    js 中加减乘除 比较精确的算法,js本身有些运算会出错,这里给出较精确的算法
    HTML属性
    HTML属性
    处理ajax数据;数据渲染(细节)
  • 原文地址:https://www.cnblogs.com/ddw1997/p/2363453.html
Copyright © 2011-2022 走看看