视频加载播放暂停切换

package com{
    import flash.display.MovieClip;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.AsyncErrorEvent;
    import flash.events.MouseEvent;
    import flash.media.Video;
    import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.display.Loader;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class MyLoader extends MovieClip {

        public static var nc:NetConnection;
        public static var ns:NetStream;
        public static var vid:Video;
        public static var empty:MovieClip;
        public static var vidTotalTime:Number;
        public static var vidNowTime:Number;
        public static var obj:Object=new Object  ;

        public static var loader:Loader;
        public static var urlR:URLRequest;
        public static var backBtn:SimpleButton;
        public static var removeBoo:Boolean=false;
        public static var timer:Timer;
        public static var btnMc:MovieClip;
        public static var picMc:MovieClip;

        private var vidY:Number
        private var initX:Number
        private var vidW:Number
        private var vidH:Number
        private var interval:Number

        //加载视频============================================
        public function MyLoader(_empty:MovieClip,_btnMc:MovieClip,_picMc:MovieClip) {
            empty=_empty;
            btnMc=_btnMc;
            picMc=_picMc

            vidY=picMc.y
            initX=picMc.x
            vidW=picMc.width
            vidH=picMc.height
            interval=212.45

            btnMc.addEventListener(MouseEvent.MOUSE_MOVE,btnFun);
            nc=new NetConnection  ;
            nc.connect(null);
            ns=new NetStream(nc);
            ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);
            ns.close();
            vid=new Video(vidW,vidH);
            function asyncErrorHandler(event:AsyncErrorEvent):void {
                // 忽略错误
            }

            obj.onMetaData=onMetaData;
            ns.client=obj;
            function onMetaData(data:Object):void {
                vidTotalTime=data.duration;
            }

            //ns.play("vid/"+2+".mp4");
            //empty.addChild(vid);
            vid.attachNetStream(ns);
            ns.pause();
            vid.smoothing=true;

            timer=new Timer(25);
            timer.addEventListener(TimerEvent.TIMER,timerFun);

        }
        //播放暂停
        public static function togglePauseFun() {
            ns.togglePause();
        }
        public static function removeMP4() {
            if (ns.time!=0) {
                ns.close();
                empty.removeChild(vid);
            }
        }
        public static function addMP4(str:String) {
            while (empty.numChildren<0) {
                empty.removeChildAt(0);
            }
            ns.play(str);
            empty.addChild(vid);
            ns.pause();
        }

        public static function timerFun(e:TimerEvent) {
            vidNowTime=ns.time;
            if ((vidTotalTime-vidNowTime)<0.1) {
                ns.close();
                empty.removeChild(vid);
                timer.stop();
                for (var i:uint=1; i<=5; i++) {
                    btnMc["btn_"+i].visible=true;
            }
            }
        }

        private function btnFun(e:MouseEvent) {
            if (timer.running==false) {
                timer.start();
                empty.addChild(vid);
            }
            var str:Number=Number(e.target.name.slice(-1));
            ns.play(("vid/"+str)+".mp4");
            vid.y=vidY
            vid.x=initX+(vid.width+interval)*(str-1)
            for (var i:uint=1; i<=5; i++) {
                if (str==i) {
                    btnMc["btn_"+i].visible=false;
                } else {
                    btnMc["btn_"+i].visible=true;
                }
            }
        }

    }
}

原文地址:https://www.cnblogs.com/zqiang0803/p/9246368.html

时间: 2024-10-13 21:29:08

视频加载播放暂停切换的相关文章

SWFObject使用方法和中文教程及IE无法加载播放的问题

SWFObject使用方法和中文教程 SWFObject的使用是非常简单的,只需要包含 swfobject.js这个js文件,然后在DOM中插入一些简单的JS代码,就能嵌入Flash媒体资源了. 下面是一个最简单的范例: 1.文件顶部需加载swfobject.js <script type="text/javascript" src="swfobject.js"></script> <script type="text/jav

优化html中mp4视频加载速度

如果使用参数faststart就会在生成完上边结构之后将moov移动到mdat前面:ffmpeg –i input.flv –c copy –f mp4 –movflags faststart output.mp4然后使用mp4info查看mp4的容器顺序,可以看到moov被移动到了mdat前面, 参考下图对比(工具使用mp4info): 参数优化之前: 参数优化之后: 当moov前置之后,如果再通过浏览器去播放视频,播放器就不必等到加载完整个视频再开始播放,从而加速在线播放速度,减少视频下载加

form表单中控件较多,加载完成后切换页面都很慢的解决方法

form表单中控件较多,加载完成后点击都很慢,为什么?我一页面中form表单里面上百个控件(如input.select.radio.checkbox等),还有一些js脚本,加载速度还可以,都能全部显示完毕,但是点击一些事件(如切换tab.关闭模拟框,点击radio等)都非常慢,不知道为什么? 当我采用inprivate模式浏览时,以上动作都很快,但老用inprivate也麻烦,有何办法解决. 按理说form都在客户端显示完全了,其他操作都是客户端的操作阿应该不慢才对阿/. ------解决思路-

音乐和音效的加载播放

在有些应用中需要用到背景音乐和音效,那在程序中是这么实现的. 1.首先加载背景音乐需要用到AVFoundation框架 2.音乐资源都是在包里的,所以需要获得包路径,涉及方法- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; url其实就是包地址,可以通过[[NSBundlemainBundle]pathForResource:@"背景音乐" ofType:@"caf"];获得到路

视频加载logo

最近工作需要,收集了一些视频卡顿或加载时的透明PNG图片.

HTML5的audio在手机网页上无法自动加载/播放音乐,能否实现该功能?

在IOS中第一次调用play方法播放音频会被阻止,必须得等用户有交互动作,比如touchstart,click后才能正常调用,在微信中可以通过监听WeixinJSBridgeReady事件来提前播放一个超级短的无声音文件,之后替换src,这样再调用play方法就可以了. 代码如下: $(document).one('WeixinJSBridgeReady', function () { var audio = document.getElementById("audio"); audi

视频加载logo 2

推荐这个网站 http://www.flaticon.com/ http://www.flaticon.com/search?word=spinner  旋转图标 http://www.flaticon.com/free-icon/spinner-circle_24202

小米视频加载进度条效果实现

好吧,其实这些都是我闲暇时自己做着玩的,以前总是拿来主义,现在分享一下让我也为大家做一点贡献好了.废话不说了,看效果. 好吧 其实没什么技术含量 直接上代码好了 和我上一篇利用WPF动画实现圆形进度条是一个道理,表现形式不同而已. 1 <UserControl x:Class="MyUserControlLibrary.CircleProgressbarcontrol" 2 xmlns="http://schemas.microsoft.com/winfx/2006/x

easyui-tabs 在ie8下基于iframe嵌套页面加载成功后切换空白问题

这是一个很坑的问题,由于项目必须支持ie8的情况下,产生了这个问题.在我进行逐步对比的分析过后,终于发现了原因所在: 核心问题在于easyui-layout直接被定义在了body 里面,具体实际原因暂时还不清楚 解决办法: 去除body的 easyui-layout ,重新定义一个div.