Changeset 435


Ignore:
Timestamp:
10/11/09 08:23:02 (4 years ago)
Author:
jeroen
Message:

fixed bugs from 4.6 testing

Files:
13 edited

Legend:

Unmodified
Added
Removed
  • plugins/qualitymonitor/com/jeroenwijering/plugins/QualityMonitor.as

    r374 r435  
    4949        /** Update quality metrics **/ 
    5050        private function check():void { 
    51                 var len:Number = 1; 
    52                 if(view.playlist[view.config['item']]['levels']) {  
    53                         len = view.playlist[view.config['item']]['levels'].length; 
     51                var lvl:String = '1 of 1'; 
     52                if(view.playlist[view.config['item']]['levels']) { 
     53                        var arr:Array = view.playlist[view.config['item']]['levels']; 
     54                        var idx:Number = view.config['level']; 
     55                        lvl = (idx+1) + ' of ' + arr.length; 
     56                        lvl += ' (' + arr[idx]['bitrate'] + 'kbps, ' + arr[idx]['width'] + 'px)'; 
    5457                } 
    5558                field.htmlText =  
    5659                        '<b>bandwidth:</b> ' + view.config['bandwidth'] + ' kbps<br/>' + 
    57                         '<b>level:</b> ' + (view.config['level']+1) + ' of ' + len + '<br/>' + 
     60                        '<b>level:</b> ' + lvl + '<br/>' + 
    5861                        '<b>width:</b> '+ view.config['width'] + ' pixels'; 
    5962        }; 
  • testing/settings.js

    r434 r435  
    420420                61: { 
    421421                        title:'Snapshot plugin', 
    422                         file:'../../testing/files/bunny.mp4', 
     422                        file:'http://content.bitsontherun.com/videos/6RCvPeUn-329.mp4', 
    423423                        height:260, 
    424424                        width:600, 
    425425                        plugins:'snapshot', 
    426                         'snapshot.script':'http://www.jeroenwijering.com/test/snapshot/create.php' 
     426                        'snapshot.script':'http://demo.bitsontherun.com/snapshot/update.php', 
     427                        'snapshot.bitmap':false 
    427428                }, 
    428429                62: { 
     
    432433                        width:600, 
    433434                        plugins:'flow' 
    434                 }, 
    435                 90:{}, 
    436                 91: { 
    437                         title:'Smooth streamed MP4', 
    438                         file:'http://h264.code-shop.com:8080/bbb.mp4/bbb.ismc', 
    439                         type:'smooth', 
    440                         height:240, 
    441                         width:500 
    442435                } 
    443436        } 
  • trunk/as3/com/jeroenwijering/models/HTTPModel.as

    r388 r435  
    266266        private function positionInterval():void { 
    267267                var pos:Number = Math.round(stream.time*10)/10; 
    268                 if(pos > position - timeoffset + 5) { 
    269                         pos = position - timeoffset + 0.1; 
    270                 } 
    271268                if (mp4) { 
    272269                        pos += timeoffset; 
  • trunk/as3/com/jeroenwijering/models/ImageModel.as

    r388 r435  
    3030                loader = new Loader(); 
    3131                loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderHandler); 
    32                 loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler); 
    3332                loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,errorHandler); 
    3433                addChild(loader); 
     
    4241                loader.load(new URLRequest(item['file']),new LoaderContext(true)); 
    4342                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.BUFFERING}); 
    44                 model.sendEvent(ModelEvent.BUFFER,{percentage:0}); 
    4543        }; 
    4644 
     
    8482                        model.sendEvent(ModelEvent.TIME,{position:position,duration:item['duration']}); 
    8583                } else if (item['duration'] > 0) { 
    86                         pause(); 
     84                        clearInterval(interval); 
    8785                        model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.COMPLETED}); 
    8886                } 
    89         }; 
    90  
    91  
    92         /** Send load progress to player. **/ 
    93         private function progressHandler(evt:ProgressEvent):void { 
    94                 var pct:Number = Math.round(evt.bytesLoaded/evt.bytesTotal*100); 
    95                 model.sendEvent(ModelEvent.BUFFER,{percentage:pct}); 
    9687        }; 
    9788 
     
    10798        /** Stop the image interval. **/ 
    10899        override public function stop():void { 
    109                 if(loader.contentLoaderInfo.bytesLoaded != loader.contentLoaderInfo.bytesTotal) { 
     100                clearInterval(interval); 
     101                try {  
    110102                        loader.close(); 
    111                 } else { 
     103                } catch(err:Error) { 
    112104                        loader.unload(); 
    113105                } 
    114                 clearInterval(interval); 
    115106                position = 0; 
    116107                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.IDLE}); 
  • trunk/as3/com/jeroenwijering/models/LivestreamModel.as

    r385 r435  
    132132 
    133133 
     134        /** Getters/setters for resizing. These make sure the aspectratios of the wrapper are kept. **/ 
     135        override public function get width():Number { 
     136                if(wrapper) { return wrapper.width; } else { return width; } 
     137        }; 
     138        override public function set width(val:Number):void { 
     139                if(wrapper) { wrapper.width = val; } else { super.width = val; } 
     140        }; 
     141        override public function get height():Number { 
     142                if(wrapper) { return wrapper.height; } else { return height; } 
     143        }; 
     144        override public function set height(val:Number):void { 
     145                if(wrapper) { wrapper.height = val; } else { wrapper.height = val; } 
     146        }; 
     147        override public function get x():Number { 
     148                if(wrapper) { return wrapper.x; } else { return x; } 
     149        }; 
     150        override public function set x(val:Number):void { 
     151                if(wrapper) { wrapper.x = val; } else { super.x = val; } 
     152        } 
     153        override public function get y():Number { 
     154                if(wrapper) { return wrapper.y; } else { return y; } 
     155        } 
     156        override public function set y(val:Number):void { 
     157                if(wrapper) { wrapper.y = val; } else { super.y = val; } 
     158        } 
     159 
     160 
    134161} 
    135162 
  • trunk/as3/com/jeroenwijering/models/RTMPModel.as

    r408 r435  
    105105                        clearInterval(bwinterval); 
    106106                } 
    107                 if(getLevel() != model.config['level']) { 
     107                if(item['levels'] && getLevel() != model.config['level']) { 
    108108                        swap(); 
    109109                } 
     
    365365                                break; 
    366366                } 
    367                 model.sendEvent('META',evt.info); 
     367                //model.sendEvent('META',evt.info); 
    368368        }; 
    369369 
  • trunk/as3/com/jeroenwijering/models/SoundModel.as

    r388 r435  
    8888                model.config['mute'] == true ? volume(0): volume(model.config['volume']); 
    8989                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.BUFFERING}); 
    90                 model.sendEvent(ModelEvent.BUFFER,{percentage:0}); 
    9190        }; 
    9291 
     
    119118                channel.addEventListener(Event.SOUND_COMPLETE,completeHandler); 
    120119                interval = setInterval(positionInterval,100); 
    121                 model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.PLAYING}); 
    122120        }; 
    123121 
     
    126124        protected function positionInterval():void { 
    127125                position = Math.round(channel.position/100)/10; 
    128                 if(sound.isBuffering == true && sound.bytesTotal > sound.bytesLoaded) { 
    129                         if(model.config['state'] != ModelStates.BUFFERING) { 
    130                                 model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.BUFFERING}); 
    131                         } else { 
    132                                 var pct:Number = Math.floor(sound.length/(channel.position+model.config['bufferlength']*1000)*100); 
    133                                 model.sendEvent(ModelEvent.BUFFER,{percentage:pct}); 
    134                         } 
    135                 } else if (model.config['state'] == ModelStates.BUFFERING && sound.isBuffering == false) { 
     126                if (model.config['state'] != ModelStates.PLAYING && channel.position > 0) { 
    136127                        model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.PLAYING}); 
    137128                } 
     
    156147        /** Destroy the sound. **/ 
    157148        override public function stop():void { 
     149                clearInterval(loadinterval); 
     150                clearInterval(interval); 
    158151                if(channel) { channel.stop(); } 
    159152                try { sound.close(); } catch (err:Error) {} 
    160                 clearInterval(loadinterval); 
    161                 clearInterval(interval); 
    162153                position = 0; 
    163154                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.IDLE}); 
  • trunk/as3/com/jeroenwijering/models/VideoModel.as

    r387 r435  
    186186        /** Seek to a new position. **/ 
    187187        override public function seek(pos:Number):void { 
    188                 position = pos; 
    189                 clearInterval(interval); 
    190                 stream.seek(position); 
    191                 play(); 
     188                if(stream && pos < stream.bytesLoaded/stream.bytesTotal*item['duration']) { 
     189                        position = pos; 
     190                        clearInterval(interval); 
     191                        stream.seek(position); 
     192                        play(); 
     193                } 
    192194        }; 
    193195 
  • trunk/as3/com/jeroenwijering/models/YoutubeModel.as

    r388 r435  
    9999                loading = true; 
    100100                if(connected) { 
    101                         if(outgoing) { 
    102                                 var gid:String = getID(item['file']); 
    103                                 outgoing.send('AS3_'+unique,"loadVideoById",gid,item['start']); 
    104                                 resize(); 
    105                         } 
     101                        var gid:String = getID(item['file']); 
     102                        outgoing.send('AS3_'+unique,"loadVideoById",gid,item['start']); 
     103                        resize(); 
    106104                } else { 
    107105                        loader.load(new URLRequest(getLocation())); 
     
    166164                        case 3: 
    167165                                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.BUFFERING}); 
    168                                 model.sendEvent(ModelEvent.BUFFER,{percentage:0}); 
    169166                                break; 
    170167                } 
     
    201198        /** Destroy the youtube video. **/ 
    202199        override public function stop():void { 
    203                 outgoing.send('AS3_'+unique,"stopVideo"); 
     200                if(connected) { 
     201                        outgoing.send('AS3_'+unique,"stopVideo"); 
     202                } else { 
     203                        loading = false; 
     204                } 
    204205                position = 0; 
    205206                model.sendEvent(ModelEvent.STATE,{newstate:ModelStates.IDLE}); 
  • trunk/as3/com/jeroenwijering/player/Player.as

    r410 r435  
    6969                id:undefined, 
    7070                plugins:undefined, 
    71                 version:'4.6.410' 
     71                version:'4.6.435' 
    7272        }; 
    7373        /** Reference to all stage graphics. **/ 
Note: See TracChangeset for help on using the changeset viewer.