动态播放外部FLV 文件和预加载 FLV 文件
/*****************
wgscd (c)2005 ' qq:153964481 e-mail:wgscd@126.com blog:http://blog.csdn.net/wgsnet
www.lie78.com
/******************************************
动态播放外部 FLV 文件
您可以在运行时加载 FLV 文件,并在 SWF 文件中播放。可以将这些文件加载到视频对象或诸如 FLVPlayback 之类的组件中。下面的示例演示如何在视频对象中播放名为 clouds.flv 的文件。
在 Flash 文档中回放外部 FLV 文件:
- 创建一个名为 playFLV.fla 的新 Flash 文档。
- 在“库”面板(“窗口”>“库”)中,从“库”弹出菜单中选择“新建视频”。
- 在“视频属性”对话框中,命名视频元件并选择“视频”(受 ActionScript 控制)。
- 单击“确定”以创建一个视频对象。
- 将该视频对象从“库”面板拖到舞台上,以创建视频对象实例。
- 使视频对象在舞台上保持选中状态,在“属性”检查器(“窗口”>“属性”>“属性”)中的“实例名称”文本框中键入 my_video。
- 在时间轴中选择第 1 帧,然后打开“动作”面板(“窗口”>“动作”)。
- 在“动作”面板中键入以下代码:
this.createTextField("status_txt", 999, 0, 0, 100, 100);status_txt.autoSize = "left";status_txt.multiline = true;// 创建一个 NetConnection 对象var my_nc:NetConnection = new NetConnection();// 创建一个本地流连接my_nc.connect(null);// 创建一个 NetStream 对象并定义一个 onStatus() 函数var my_ns:NetStream = new NetStream(my_nc);my_ns.onStatus = function(infoObject:Object):Void { status_txt.text += "status (" + this.time + " seconds)/n"; status_txt.text += "/t Level: " + infoObject.level + "/n"; status_txt.text += "/t Code: " + infoObject.code + "/n/n";};// 将 NetStream 视频输入信号附加到 Video 对象my_video.attachVideo(my_ns);// 设置缓冲时间my_ns.setBufferTime(5);// 开始播放 FLV 文件my_ns.play("http://www.helpexamples.com/flash/video/clouds.flv");
- 选择“控制”>“测试影片”来测试该文档。
有关预加载 FLV 文件的信息,请参阅第 507 页上的“预加载 FLV 文件”。有关将 FLV 视频动态加载到组件中的信息,请参阅《组件语言参考》。有关 FLV 文件和服务器、FLV 文件以及在 Macintosh 上本地播放 FLV 文件的信息,请参阅
预加载 FLV 文件
若要跟踪 FLV 文件的下载进度,请使用 NetStream.bytesLoaded
和 NetStream.bytesTotal
属性。若要获取 FLV 文件的总字节数和当前下载的字节数,请使用 NetStream.bytesLoaded
和 NetStream.bytesTotal
属性。
下面的示例使用 bytesLoaded
和 bytesTotal
属性显示将 video1.flv 加载到名为 my_video 的视频对象实例中的进度。将动态创建一个名为 loaded_txt 的文本字段,以便显示有关加载进度的信息。
预加载 FLV 文件:
- 创建一个名为 preloadFLV.fla 的新 FLA 文件。
- 在“库”面板(“窗口”>“库”)中,从“库”弹出菜单中选择“新建视频”。
- 在“视频属性”对话框中,命名视频元件并选择“视频”(受 ActionScript 控制)。
- 单击“确定”以创建一个视频对象。
- 将该视频对象从“库”面板拖到舞台上,以创建视频对象实例。
- 使视频对象在舞台上保持选中状态,在“属性”检查器(“窗口”>“属性”>“属性”)中的“实例名称”文本框中键入 my_video。
- 使视频实例保持选中状态,然后在“属性”检查器的宽度文本框中键入 320,在高度文本框中键入 213。
- 在时间轴中选择第 1 帧,然后打开“动作”面板(“窗口” > “动作”)。
在“动作”面板中键入以下代码:
var connection_nc:NetConnection = new NetConnection();connection_nc.connect(null);var stream_ns:NetStream = new NetStream(connection_nc);my_video.attachVideo(stream_ns);stream_ns.play("http://www.helpexamples.com/flash/video/lights_short.flv");
this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22);var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);function checkBytesLoaded(my_ns:NetStream) { var pctLoaded:Number = Math.round(my_ns.bytesLoaded / my_ns.bytesTotal * 100); loaded_txt.text = Math.round(my_ns.bytesLoaded / 1000) + " of " + Math.round(my_ns.bytesTotal / 1000) + " KB loaded (" + pctLoaded + "%)"; progressBar_mc.bar_mc._xscale = pctLoaded; if (pctLoaded >= 100) { clearInterval(loaded_interval); }}
- 选择“控制”>“测试影片”,对代码进行测试。
注意
如果进度条立刻走完,则表明视频被缓存到了硬盘上(可能是早已测试过此示例,也可能在其它过程中早已加载了它)。如果发生这种情况,请将 FLV 文件上载到服务器,然后再加载。
预加载 FLV 文件的另一种途径是使用 NetStream.setBufferTime()
方法。此方法采用单个参数,该参数指示回放开始前 FLV 流缓冲的秒数。有关详细信息,请参阅《ActionScript 2.0 语言参考》中的 setBufferTime(NetStream.setBufferTime 方法)
、getBytesLoaded(MovieClip.getBytesLoaded 方法)
、getBytesTotal(MovieClip.getBytesTotal 方法)
、bytesLoaded(NetStream.bytesLoaded 属性)
、bytesTotal(NetStream.bytesTotal 属性)
和 setInterval 函数
。
例子:
<script language="JavaScript1.2" type="text/javascript"> </script>
动态播放外部FLV 文件和预加载 FLV 文件相关推荐
- 图片在xml文件中直接加载.9文件
图片在xml文件中直接加载.9文件,可能会因为图片压缩的缘故产生锯齿,如果使用 ImageView imageview = (ImageView) view .findViewById(R.id.in ...
- android字体文件过大,加载字体文件过大的问题,不是icon,而是fontFamily
目前在写app时遇到ttf文件加载太大了,放本地打包比app还大(差不多了),放服务器加载太慢,于是乎想要看看能不能把这个ttf字体包搞小一点. 首先是加载字体文件的loadFontFace,插件市场 ...
- 使用wpf引入资源文件,RichTestBox加载rtf文件
最近临时被拉来负责公司客户端界面的一些开发,因为之前做过一些界面相关的开发内容,所以本想着应该分分钟就搞定,却不曾想浪费了我好几天.这里我吐槽一句,我佩服(wpf)是真不好用,尤其是对于之前没接触过这 ...
- cocos2x (c++/lua) spine 文件的预加载
在之前,笔者写过一编博客,通过lua在加载场景加载spineAnimation动画精灵,保存在table中,然后在游戏中创建动画精灵时,提取加载好的spineAnimaiton中的 spSkeleto ...
- 5.cocos2dx中关于draw绘图,声音和音效,预加载,播放与停止Vs暂停和恢复,音量控制
1 draw绘图 头文件 T19Draw.h #ifndef __T19Draw_H__ #define __T19Draw_H__ #include "cocos2d.h" ...
- unity动态加载obj文件
unity2018.4.2f1 vs2017 最近项目需求,需要实现动态读物外部obj模型,并加载到场景中,研究了好几天,终于实现了,在此做个记录. 1.首先随便找个.obj模型,带贴图,我的资源截图 ...
- 6-6 快速播放音频和视频预加载
更快的播放开始意味着更多的人观看您的视频或收听您的音频.这是众所周知的事实.在本文中,我将探讨可用于通过根据您的用例主动预加载资源来加速音频和视频播放的技术. 我将描述预加载媒体文件的三种方法,从它们 ...
- Wxwidget 动态加载资源文件
一.创建自己的资源文件 你可以从一个xml文件中加载对话框,frame窗口,菜单条,工具条等等.不用c++代码去实现,这符合代码界面和代码分离的原则.我们可以使用DialogBlocks,XRCed和 ...
- javascript 文件的同步加载与异步加载
原文:[转载]javascript 文件的同步加载与异步加载 HTML 4.01 的script属性 charset: 可选.指定src引入代码的字符集,大多数浏览器忽略该值. defer: bool ...
最新文章
- php file函数在内容与底层逻辑分离的应用
- 使用WinDbg获取SSDT 系统服务描述表的函数服务号(索引)
- 自己的利益,还是用户的名义?
- lazada发货_Lazada发货用什么物流?费用要多少?
- MySQL笔记-简单配置主从库
- [******] 堆排序
- yii beforeaction 如何赋值全局变量_前端如何进行用户权限管理
- 寒武纪与华为海思分庭抗礼:中立芯片公司的成人礼
- 数据库中union和union all的区别
- 页面删除android4.0 Launcher仿三星平板workspace页面编辑(即页面增减)
- 捷联惯导系统学习4.2(捷联惯导误差方程)
- 《数据挖掘概念与技术》第三版 范明 孟小峰译 课后习题答案(二)
- 韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
- cargo test 报错 STATUS_DLL_NOT_FOUND
- EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT
- 测试鼠标传感器的软件,鼠标该怎么选择?给大家说下鼠标传感器的差距
- Windows 使用技巧 -- 自定义桌面图标显示
- 世界上最大的开源基金会 Apache 是如何运作的?
- Linux命令之测试网络连通状态ping
- word文档纯字数统计_如何在您的Word文档中插入字数统计