Changeset 2067


Ignore:
Timestamp:
01/13/12 13:50:32 (17 months ago)
Author:
pablo
Message:
  • Fixes jumpy image loading in HTML5 (1477)
  • Cleans up iOS play sequence (1409)
  • Adds a fade animation to preview image load (1566)
Location:
trunk/fl5
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/fl5/js/bin-debug/jwplayer.js

    r2058 r2067  
    1919var $jw = jwplayer; 
    2020 
    21 jwplayer.version = '5.9.2058'; 
     21jwplayer.version = '5.9.2067'; 
    2222 
    2323// "Shiv" method for older IE browsers; required for parsing media tags 
     
    629629                                if (style.width/parentWidth > 0.95) { 
    630630                                        transform = true; 
    631                                         xscale = Math.ceil(1000 * parentWidth / style.width) / 1000; 
     631                                        xscale = Math.ceil(100 * parentWidth / style.width) / 100; 
    632632                                        yscale = 1; 
    633633                                        style.width = parentWidth; 
     
    640640                                        transform = true; 
    641641                                        xscale = 1; 
    642                                         yscale = Math.ceil(1000 * parentHeight / style.height) / 1000; 
     642                                        yscale = Math.ceil(100 * parentHeight / style.height) / 100; 
    643643                                        style.height = parentHeight; 
    644644                                } 
     
    45944594                        var media = _model.getMedia().getDisplayElement(); 
    45954595                        if (media && media.tagName.toLowerCase() == "video") { 
     4596                                if (!media.videoWidth || !media.videoHeight) { 
     4597                                        media.style.opacity = 0; 
     4598                                        return; 
     4599                                } 
    45964600                                media.style.position = "absolute"; 
     4601                                _utils.fadeTo(media, 1, 0.25); 
    45974602                                if (media.parentNode) { 
    45984603                                        media.parentNode.style.left = _box.style.left; 
     
    64086413                var _showing = true; 
    64096414                var _lastSent; 
     6415                var _imageLoading = false; 
    64106416                var _hiding = false; 
    64116417                var _ready = false; 
     
    65656571                        _imageHeight = _display.display_image.naturalHeight; 
    65666572                        _stretch(); 
     6573                        _css(_display.display_image, { 
     6574                                display: "block", 
     6575                                opacity: 0 
     6576                        }); 
     6577                        _utils.fadeTo(_display.display_image, 1, 0.1); 
     6578                        _imageLoading = false; 
    65676579                } 
    65686580                 
     
    67806792                 
    67816793                function _showImage() { 
    6782                         if (_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()] && _api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image) { 
    6783                                 _css(_display.display_image, { 
    6784                                         display: "block" 
    6785                                 }); 
    6786                                 _display.display_image.src = _utils.getAbsolutePath(_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image); 
     6794                        if (_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()]) { 
     6795                                var newsrc = _api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image; 
     6796                                if (newsrc) { 
     6797                                        if (newsrc != _display.display_image.src) { 
     6798                                                _display.display_image.style.display = "none"; 
     6799                                                _imageLoading = true; 
     6800                                                _display.display_image.src = _utils.getAbsolutePath(_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image); 
     6801                                        } else if (!_imageLoading) { 
     6802                                                _display.display_image.style.display = "block"; 
     6803                                                _utils.fadeTo(_display.display_image, 1, 0.1); 
     6804                                        } 
     6805                                         
     6806                                } 
    67876807                        } 
    67886808                } 
  • trunk/fl5/js/src/html5/jwplayer.html5.display.js

    r2054 r2067  
    4242                var _showing = true; 
    4343                var _lastSent; 
     44                var _imageLoading = false; 
    4445                var _hiding = false; 
    4546                var _ready = false; 
     
    199200                        _imageHeight = _display.display_image.naturalHeight; 
    200201                        _stretch(); 
     202                        _css(_display.display_image, { 
     203                                display: "block", 
     204                                opacity: 0 
     205                        }); 
     206                        _utils.fadeTo(_display.display_image, 1, 0.1); 
     207                        _imageLoading = false; 
    201208                } 
    202209                 
     
    414421                 
    415422                function _showImage() { 
    416                         if (_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()] && _api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image) { 
    417                                 _css(_display.display_image, { 
    418                                         display: "block" 
    419                                 }); 
    420                                 _display.display_image.src = _utils.getAbsolutePath(_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image); 
     423                        if (_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()]) { 
     424                                var newsrc = _api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image; 
     425                                if (newsrc) { 
     426                                        if (newsrc != _display.display_image.src) { 
     427                                                _display.display_image.style.display = "none"; 
     428                                                _imageLoading = true; 
     429                                                _display.display_image.src = _utils.getAbsolutePath(_api.jwGetPlaylist()[_api.jwGetPlaylistIndex()].image); 
     430                                        } else if (!_imageLoading) { 
     431                                                _display.display_image.style.display = "block"; 
     432                                                _utils.fadeTo(_display.display_image, 1, 0.1); 
     433                                        } 
     434                                         
     435                                } 
    421436                        } 
    422437                } 
  • trunk/fl5/js/src/html5/jwplayer.html5.view.js

    r2055 r2067  
    335335                        var media = _model.getMedia().getDisplayElement(); 
    336336                        if (media && media.tagName.toLowerCase() == "video") { 
     337                                if (!media.videoWidth || !media.videoHeight) { 
     338                                        media.style.opacity = 0; 
     339                                        return; 
     340                                } 
    337341                                media.style.position = "absolute"; 
     342                                _utils.fadeTo(media, 1, 0.25); 
    338343                                if (media.parentNode) { 
    339344                                        media.parentNode.style.left = _box.style.left; 
  • trunk/fl5/js/src/jwplayer.js

    r2058 r2067  
    1111var $jw = jwplayer; 
    1212 
    13 jwplayer.version = '5.9.2058'; 
     13jwplayer.version = '5.9.2067'; 
    1414 
    1515// "Shiv" method for older IE browsers; required for parsing media tags 
  • trunk/fl5/js/src/utils/jwplayer.utils.js

    r2058 r2067  
    604604                                if (style.width/parentWidth > 0.95) { 
    605605                                        transform = true; 
    606                                         xscale = Math.ceil(1000 * parentWidth / style.width) / 1000; 
     606                                        xscale = Math.ceil(100 * parentWidth / style.width) / 100; 
    607607                                        yscale = 1; 
    608608                                        style.width = parentWidth; 
     
    615615                                        transform = true; 
    616616                                        xscale = 1; 
    617                                         yscale = Math.ceil(1000 * parentHeight / style.height) / 1000; 
     617                                        yscale = Math.ceil(100 * parentHeight / style.height) / 100; 
    618618                                        style.height = parentHeight; 
    619619                                } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as

    r2058 r2067  
    33         
    44        public class PlayerVersion { 
    5                 protected static var _version:String = '5.9.2058'; 
     5                protected static var _version:String = '5.9.2067'; 
    66                 
    77                public static function get version():String { 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/View.as

    r2058 r2067  
    6363                protected var _backgroundLayer:MovieClip; 
    6464                protected var _mediaLayer:MovieClip; 
     65                protected var _mediaFade:Animations; 
    6566                protected var _imageLayer:MovieClip; 
     67                protected var _imageFade:Animations; 
     68 
    6669                protected var _componentsLayer:MovieClip; 
    6770                protected var _pluginsLayer:MovieClip; 
     
    182185                        layoutManager = new PlayerLayoutManager(_player); 
    183186                        setupRightClick(); 
     187 
     188                        stateHandler(); 
    184189 
    185190                        redraw(); 
     
    257262 
    258263                        _mediaLayer = setupLayer("media", 1, _maskedLayers); 
    259                         _mediaLayer.visible = false; 
     264                        _mediaLayer.alpha = 0; 
     265                        _mediaFade = new Animations(_mediaLayer); 
    260266 
    261267                        _imageLayer = setupLayer("image", 1, _maskedLayers); 
     
    264270                        _image.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, imageError); 
    265271                        _imageLayer.addChild(_image); 
     272                        _imageLayer.alpha = 0; 
     273                        _imageFade = new Animations(_imageLayer); 
    266274 
    267275                        imageDelay.addEventListener(TimerEvent.TIMER_COMPLETE, showImage); 
     
    582590                                        Logger.log('Could not smooth preview image: ' + e.message); 
    583591                                } 
     592                                showImage(); 
    584593                        } 
    585594                } 
     
    590599                } 
    591600 
    592                 protected function showImage(evt:TimerEvent):void { 
    593                         _imageLayer.visible = true; 
    594                         _mediaLayer.visible = false; 
     601                 
     602                protected function showImage(evt:TimerEvent=null):void { 
     603                        _imageLayer.alpha = 0; 
     604                        _imageFade.fade(1); 
     605                        _mediaFade.fade(0); 
     606                } 
     607                 
     608                protected function hideImage():void { 
     609                        _imageFade.fade(0); 
    595610                } 
    596611 
    597612                protected function showMedia(evt:TimerEvent):void { 
    598                         _mediaLayer.visible = Boolean(_model.media.display); 
    599                         _imageLayer.visible = !Boolean(_model.media.display); 
    600                 } 
    601                  
    602                 protected function stateHandler(evt:PlayerStateEvent):void { 
     613                        if (_model.media.display) { 
     614                                _mediaFade.fade(1); 
     615                                _imageFade.fade(0); 
     616                        } else { 
     617                                _mediaFade.fade(0); 
     618                                _imageFade.fade(1); 
     619                        }  
     620                } 
     621                 
     622                protected function stateHandler(evt:PlayerStateEvent=null):void { 
    603623                        imageDelay.reset(); 
    604624                        mediaDelay.reset(); 
    605                         switch (evt.newstate) { 
     625                        switch (_model.state) { 
    606626                                case PlayerState.IDLE: 
    607627                                        imageDelay.start(); 
Note: See TracChangeset for help on using the changeset viewer.