




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云帆加速 Flash 播放开发文档 V1.0 注:本文适用于 web 端的 flash 播放技术。 一、 SDK 加载与注册 1. Yunfan.swf 加载方式 确认 YufanSDK 的地址,你可以使用自己的 CDN。 如果要加载来自云帆服务器的 YunfanSDK,请与云帆客服联系。 private var YUNFAN_SDK:String = “http:/yourdomain/path/Yunfan.swf“; 初始化加载相关的变量和声明 YunfanStream 类。 private var req:URLRequest = new URLRequest(YUNFAN_SDK); private var context:LoaderContext = new LoaderContext(true,ApplicationDomain.currentDomain); context.securityDomain = flash.system.SecurityDomain.currentDomain; private var loader = new Loader(); private var YunfanStream:Class; private var stream:*; 注册加载事件,在加载完成事件中获取 YunfanStream 类,并实例化一个播放流。 loader.contentLoaderInfo.addEventListener(Event.COMPLETE,function():void YunfanStream = loader.contentLoaderInfo.applicationDomain.getDefinition(“YunfanStream“) as Class; loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,arguments.callee); /加载到 YunfanStream 类后,实例化等操作 var connection = new NetConnection(); connection.connect(null); stream = new YunfanStream(netConnection); trace(yunfanp2p 加载成功,版本号:+stream.version); ); 开始从 Yunfan.swf 中加载 YunfanStream 类。 loader.load(req,context); 2. YunfanLoader.swc 加载方式 加初始化加载相关的变量和声明 YunfanStream 类。 import com.yunfancdn.loader.YunfanLoader; import com.yunfancdn.YunfanEvent; private var yfLoader:YunfanLoader; private var YunfanStream:Class; private var stream:*; 加载 YunfanStream 的函数体,里面注册了加载成功和失败的事件。 private function loadYunfan():void try yfLoader = new YunfanLoader(); yfLoader.addEventListener(YunfanEvent.COMPLETE,onComplete); yfLoader.addEventListener(YunfanEvent.ERROR,onError); yfLoader.load(); catch(e:*) trace(load yunfan error +e) 加载成功事件,在加载完成事件中获取 YunfanStream 类,并实例化一个播放流。 private function onComplete(e:YunfanEvent):void var connection = new NetConnection(); connection.connect(null); YunfanStream = e.data.StreamClass as Class; stream = new YunfanStream(connection); trace(yunfanp2p 加载成功,版本号:+stream.version); this.yfLoader.removeEventListener(YunfanEvent.COMPLETE, this.onComplete); this.yfLoader.removeEventListener(YunfanEvent.ERROR, this.onError); this.yfLoader = null; 加载失败事件。 private function onError(e:YunfanEvent):void this.yfLoader.removeEventListener(YunfanEvent.COMPLETE, this.onComplete); this.yfLoader.removeEventListener(YunfanEvent.ERROR, this.onError); this.yfLoader = null; trace(“yunfanp2p 加载失败,“+e.data.code); 开始加载 YunfanStream。 loadYunfan(): YunfanStream 获取后,你可以尝试 获取 sdk 版本号,来验证 sdk 是否加载成功。 注册 YunfanStream,验证你是否有权限使用 YunfanSDK。 private const YUNFAN_KEY:String = “请在 网站上注册并申请 KEY“; stream.register(YUNFAN_KEY); yunfan.addEventListener(YunfanEvent.REGISTER_FAIL, onRegisterHandler); yunfan.addEventListener(YunfanEvent.REGISTER_SUCC, onRegisterHandler); 注册的回调事件,如果注册成功,那么你就可以正常使用 YunfanP2P 服务了。 private function onRegisterHandler(e:YunfanEvent):void if(e.type = YunfanEvent.REGISTER_SUCC) trace(yunfanp2p 注册成功,状态码:+e.code); /可以开始使用 yunfanstream 了 else if(e.type = YunfanEvent.REGISTER_SUCC) trace(yunfanp2p 注册失败,状态码:+e.code); 注册事件返回的状态码含义: 权限 状态码 说明 播放 FlashP2P DCDN 终端 P2P 40001 网站提交成功,正在审核中 40002 网站审核通过,但未启用 40003 网站审核通过,并加速中 40004 网站审核不通过,无法启用加速 40005 网站违规被封停,无法启用加速 40006 网站已启用加速,但加速异常 40007 网站不存在,已被删除或未提交 40008 该 sdk 版本不可用 50000 认证失败,请检查网络连接和防火墙 注: 表示当贵方获赠 DCDN 流量或者已购买 DCDN 流量则开启。 表示当贵方和云帆有其他合作的终端播放器(PC/IOS/ANDROID)的时候则开启。 二、获取 yunfanSDK 版本号 静态属性:YunfanStream.VERSION 实例属性:stream.version 你可以将该版本号通过 ContextMenu 类添加至 flash 右键菜单中方便双方调试。 三、YunfanStream 使用示例 YunfanStream 由 NetStream 派生,支持 NetStream 所有的属性、方法和事件,你完全可以 按照 NetStream 类一样使用。 YunfanStream 视频播放参数: 参数名 类型 说明 videoUrl String 视频源地址,必填,必须是有域名的视频地址。 keyUrl String 视频关键地址,选填,默认与 videoUrl 相同。 YunfanStream 会请求 videoUrl,以获取视频码流(同一个视频不同码率也是不同的视频码 流) 。 如果贵方同一个影片只有唯一一个 videoUrl,那么 keyUrl 可与 videoUrl 相同。 如果同一个视频影片拥有多个 videoUrl,请配置该影片的关键地址 keyUrl。 比如: 同一个视频地址每天都会变化: videoUrl1 = “/dianshiju/20130615/b1400ed7e0aab7ff.html“; videoUrl2 = “/dianshiju/20130616/b1400ed7e0aab7ff.html“; 那么应该这项传参数: keyUrl = “/b1400ed7e0aab7ff“; stream.play(videoUrl1,keyUrl); stream.play(videoUrl2,keyUrl); 使用示例: 初始化视频播放器,并将播放器添加到舞台。 private var video:Video = new Video(); stage.addChild(video); 给播放流注册事件,同时播放器关联该播放流,然后把视频地址传给播放流开始播放。 private var videoUrl:String= “你的视频源地址“; private var keyUrl:String= “你的视频关键地址“; stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = this; video.attachNetStream(stream); stream.play(videoUrl,keyUrl); 播放过程中的状态事件: private function netStatusHandler(e:NetStatusEvent):void switch (.code) case “NetConnection.Connect.Success“:/NetConnection 连接成功 break; case “NetStream.Play.StreamNotFound“:/找不到视频流,请检查视频 url 或者网络 break; case “NetStream.Play.Start“:/视频启动播放。一次 play()方法至多触发一次该事件。 break; case “NetStream.Play.Stop“:/视频停止播放。手动 close 不会触发该事件 break; case “NetStream.Unpause.Notify“:/暂停后恢复播放状态 break; case “NetStream.Buffer.Full“:/缓冲区已满,流开始播放 break; case “NetStream.Pause.Notify“:/暂停 break; case “NetStream.Buffer.Empty“:/缓冲区内数据不足,发起缓冲 break; 播放流触发的视频元信息事件: public function onMetaData(info:Object):void /从这里获取视频宽、高、时长、大小、关键帧等信息 for(var i:* in info) trace(i+“ : “+ infoi); 五、YunfanStream 自定义事件 YunfanStream 除了 NetStream 原生事件外,新增了以下事件(同样由 NetStatusEvent 扩展) : code:NetStream.SecurityError.843,value:data.ip) 视频服务器(包括 CDN 节点)的 843 端口服务未开启或者返回的 843 策略文件异常。 value 为对应服务器 ip。 code:NetStream.NetWork.ContentRangeError,value:data.ip) 视频服务器(包括 CDN 节点)不支持 Range 字段的 HTTP 分段请求。 value 为对应服务器 ip。 code:NetStream.CDN.StreamNotFound) 云帆 CDN 上找不到视频文件,当使用云帆 CDN 的时候请注意该事件 。 当视频首次点播的时候,云帆 CDN 还没有 cache 到该视频,就找不到该文件,这时候 会触发该事件,同时云帆 CDN 会去下载该视频。等下次点播,云帆 CDN 上有了该视 频,就会从云帆 CDN 上下载视频。 触发该事件的时候,你可以转向 Netstream 下载,并将 YunfanStream 的实例 close。 6、视频源服务器(CDN)需要哪些支持? 1. 支持标准 HTTP 协议中的 RANGE 字段 Range : 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range: bytes=( 起始字节位置,单位 byte )-( 结束字节位置,单位 byte) 如: Range: bytes=0-0,表示请求第 0-0 位置也就是第 1 个字节的数据 Range: bytes=1-100,表示请求第 1-100 位置共 100 个字节的数据 Range: bytes=0-,表示请求从 0 开始到最后一个字节的数据 Content-Range: 用于响应头,指定整个实体中的一部分的插入位置,他也指示了整个实体的长度。在服务 器向客户返回一个部分响应,它必须描述响应覆盖的范围和整个实体长度。一般格式: Content-Range: b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国美术史试题及答案
- 2025年飞行执照测试题及答案
- DB65T 4777.2-2024 社区视频信息结构化处理系统 第2部分:接口协议要求
- 幼资面试题库及答案
- 高速防护栏施工劳务合同(3篇)
- 2025公务员英雄面试题及答案
- 2025公务员天灾面试题及答案
- 餐饮连锁厨师团队合作协议
- 影像专业面试题目及答案
- 2025年中医基础理论试题及答案
- 高龄患者PICC导管静脉血栓形成的个案分享课件
- 中国骨折内固定术后感染诊断与治疗专家共识
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- 基础护理学第七版题附有答案
- (正式版)HGT 20593-2024 钢制化工设备焊接与检验工程技术规范
- 200个句子涵盖高中英语3500词汇
- 光线传媒公司章程
- 二手车产品目录
- 弹塑性力学讲稿课件
- 护坡工程竣工汇报
- 急诊科护士的病人家属安抚与沟通
评论
0/150
提交评论