A Flash Developer Resource Site

Results 1 to 3 of 3

Thread: videoplayer class bug? it disconnects when paused

  1. #1
    Junior Member
    Join Date
    Nov 2007
    Posts
    1

    videoplayer class bug? it disconnects when paused

    im having somethin very odd. when i try to pause a progresive flv it works, but to resume it gets disconnected. and theres no way to get it working.
    this is my code (a little bit nasty because of the traces and trials and errors)


    Code:
       package {
        import flash.display.Sprite;
        import flash.events.*;
        import flash.display.MovieClip;
        import fl.video.VideoPlayer;
        import fl.video.VideoEvent;
        import fl.video.MetadataEvent;
        import fl.video.VideoProgressEvent;
        import fl.video.VideoScaleMode;
        import fl.video.VideoState;
        import fl.video.NCManager;
        import flash.events.NetStatusEvent;
    
        public class myvid extends MovieClip {
    
            private var player:VideoPlayer;
    
            public var src:String;
            private var meta:Object;
    
            private var srcw:Number;
            private var srch:Number;
            private var srcduration:Number;
            private var bar:Sprite;
            private var posbar:fondo;
            private var currentpos:fondo;
            private var bloaded:fondo;
            private var vc:vcontrol;
            private var actionclose:Event=new Event("actionclose");
    
    
            public function myvid(src:String) {
    
                myMC.dispatcher.addEventListener("actionclose", actioncloseHandler);
    
                player = new VideoPlayer();
    
                //player.idleTimeout=1000000;
                player.bufferTime=5;
                player.scaleMode=VideoScaleMode.NO_SCALE;
                player.setSize(480, 320);
                player.x=360;
                player.y=7;
                addChild(player);
                addEventListener(Event.REMOVED,removedHandler);
                player.addEventListener(VideoEvent.COMPLETE,vidcompleteHandler);
                player.addEventListener(VideoEvent.PLAYHEAD_UPDATE, playingHandler);
                player.addEventListener(MetadataEvent.METADATA_RECEIVED, metadataHandler);
                player.addEventListener(VideoProgressEvent.PROGRESS, loadingHandler);
                player.addEventListener(VideoEvent.STATE_CHANGE, stateHandler);
                player.addEventListener(VideoEvent.READY, readyHandler);
    
    
                controller();
                vidload(src);
    
    
            }
            public function vidload(url:String) {
    
                player.load(url);
    
    
                player.netStream.addEventListener(NetStatusEvent.NET_STATUS,nsHandler);
                player.netConnection.addEventListener(NetStatusEvent.NET_STATUS,nsHandler);
    
            }
            public function controller() {
    
                bar=new Sprite();
    
                posbar=new fondo(0x333333,0x111111,480,3);
                bloaded=new fondo(0x226666,0x111111,480,3,1);
                currentpos=new fondo(0xffffff,0x111111,480,3,0.4);
                bar.x=365;
                bar.y=328;
    
                vc=new vcontrol();
    
                vc.x=360;
                vc.y=327;
                vc.addEventListener(MouseEvent.CLICK,vcclikHandler);
                addChild(bar);
                addChild(vc);
                bar.addChild(posbar);
                bar.addChild(bloaded);
                bar.addChild(currentpos);
                bar.width=475;
                function vcclikHandler(event:MouseEvent):void {
    
                    trace(player.state+"||||||||"+event.currentTarget);
                    /*if (vc.currentFrame==1) {
                        //vc.gotoAndStop(2);
                        
                    } else {
                        //vc.gotoAndStop(1);
                        player.netStream.pause();
                    }*/
                    
    
                    if (player.state!= "playing") {
                    trace("try play");
                    vc.gotoAndStop(1);
                    player.netStream.pause();
                    //player.play();
                    
                    }
                    if (player.state== "playing") {
                    trace("try pause");
                    vc.gotoAndStop(2);
                    player.netStream.pause();
                    
                    }
                    
    
                }
    
            }
            private function stateHandler(event:VideoEvent):void {
    
                trace("||||||||"+event.state);
    
    
            }
            private function nsHandler(event:NetStatusEvent):void {
                trace("_______________"+event.info.code);
    
            }
            private function metadataHandler(metadataObj:Object):void {
    
                meta = metadataObj;
                srcduration=meta.info.duration;
                trace(meta.info.videodatarate);
            }
            private function loadingHandler(event:VideoProgressEvent):void {
                var percent:Number=event.bytesLoaded/event.bytesTotal;
    
                bloaded.width=480*percent;
            }
            private function readyHandler(event:VideoEvent):void {
                trace("ready");
                player.play();
    
            }
    
            private function vidcompleteHandler(event:VideoEvent):void {
                //player.autoRewind=true;
            }
            private function playingHandler(event:VideoEvent):void {
                currentpos.width=(480/srcduration)*event.playheadTime;
            }
            function actioncloseHandler(event:Event):void {
                trace("close");
                parent.removeChild(this);
            }
            function removedHandler(event:Event):void {
                player.close();
                addEventListener(Event.REMOVED,removedHandler);
                player.removeEventListener(VideoEvent.COMPLETE,vidcompleteHandler);
                player.removeEventListener(VideoEvent.PLAYHEAD_UPDATE, playingHandler);
                player.removeEventListener(MetadataEvent.METADATA_RECEIVED, metadataHandler);
                player.removeEventListener(VideoProgressEvent.PROGRESS, loadingHandler);
                player.removeEventListener(VideoEvent.STATE_CHANGE, stateHandler);
                player.removeEventListener(VideoEvent.READY, readyHandler);
            }
        }
    }

  2. #2
    Senior Member cancerinform's Avatar
    Join Date
    Mar 2002
    Location
    press the picture...
    Posts
    13,449
    Have you tested if this is possibly due because you are removing an event listener?
    I have never observed this so far.
    - The right of the People to create Flash movies shall not be infringed. -

  3. #3
    Junior Member
    Join Date
    Nov 2007
    Posts
    1
    i dont think about the listener, because it is not removed at pause. the remove listener call if to get the instance ready for garbage colection. but its not called.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center