Changeset 824


Ignore:
Timestamp:
02/08/10 19:12:04 (3 years ago)
Author:
pablo
Message:

Fixed issue with delayed MediaProvider loading

Location:
trunk/fl5
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/fl5/src/com/longtailvideo/jwplayer/controller/Controller.as

    r823 r824  
    7474                /** Reference to a PlaylistItem which has triggered an external MediaProvider load **/ 
    7575                protected var _delayedItem:PlaylistItem; 
     76                /** Loader for external MediaProviders **/ 
     77                protected var _mediaLoader:MediaProviderLoader; 
    7678                 
    7779                public function Controller(player:IPlayer, model:Model, view:View) { 
     
    195197 
    196198                protected function errorHandler(evt:ErrorEvent):void { 
     199                        _delayedItem = null; 
     200                        _mediaLoader = null; 
    197201                        errorState(evt.text); 
    198202                } 
     
    319323 
    320324                public function play():Boolean { 
     325                        if (_mediaLoader) { 
     326                                _delayedItem = _model.playlist.currentItem; 
     327                                return false; 
     328                        } 
     329 
    321330                        if (locking) { 
    322331                                return false; 
     
    327336                                        case PlayerState.IDLE: 
    328337                                                load(_model.playlist.currentItem); 
    329                                                 if (!_delayedItem) { 
    330                                                         _model.media.addEventListener(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL, bufferFullHandler); 
    331                                                         _model.media.load(_model.playlist.currentItem); 
    332                                                 } 
     338                                                _model.media.addEventListener(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL, bufferFullHandler); 
     339                                                _model.media.load(_model.playlist.currentItem); 
    333340                                                break; 
    334341                                        case PlayerState.PAUSED: 
     
    540547                protected function setProvider(item:PlaylistItem):Boolean { 
    541548                        var provider:String = item.provider; 
    542                         _delayedItem = null; 
    543                          
     549 
    544550                        if (provider) { 
    545551 
     
    552558                                // If the model doesn't have an instance of the provider, load & instantiate it 
    553559                                if (!_model.hasMediaProvider(provider)) { 
    554                                         _delayedItem = item; 
    555  
    556                                         var mediaLoader:MediaProviderLoader = new MediaProviderLoader(); 
    557                                         mediaLoader.addEventListener(Event.COMPLETE, mediaSourceLoaded); 
    558                                         mediaLoader.addEventListener(ErrorEvent.ERROR, errorHandler); 
    559                                         mediaLoader.loadSource(provider); 
     560                                        _mediaLoader = new MediaProviderLoader(); 
     561                                        _mediaLoader.addEventListener(Event.COMPLETE, mediaSourceLoaded); 
     562                                        _mediaLoader.addEventListener(ErrorEvent.ERROR, errorHandler); 
     563                                        _mediaLoader.loadSource(provider); 
    560564                                        return true; 
    561565                                } 
     
    570574 
    571575                protected function mediaSourceLoaded(evt:Event):void { 
    572                         var loader:MediaProviderLoader = evt.target as MediaProviderLoader; 
    573                         _model.setMediaProvider(_delayedItem.provider, loader.loadedSource); 
     576                        var loader:MediaProviderLoader = _mediaLoader; 
    574577                        _delayedItem = null; 
    575                         play(); 
     578                        _mediaLoader = null; 
     579                        if (_delayedItem) { 
     580                                _model.setMediaProvider(_delayedItem.provider, loader.loadedSource); 
     581                                play(); 
     582                        } else { 
     583                                _model.setMediaProvider(_model.playlist.currentItem.provider, loader.loadedSource);                              
     584                        } 
    576585                } 
    577586 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/RTMPMediaProvider.as

    r821 r824  
    22 * Wrapper for playback of _video streamed over RTMP. 
    33 * 
    4  * All playback functionalities are cross-server (FMS, Wowza, Red5), with the exception of: 
    5  * - The SecureToken functionality (Wowza). 
    6  * - getStreamLength / checkBandwidth (FMS3). 
     4 * All playback functionalities are cross-server (FMS, Wowza, Red5) 
    75 **/ 
    86package com.longtailvideo.jwplayer.media { 
  • trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as

    r823 r824  
    33         
    44        public class PlayerVersion { 
    5                 protected static var _version:String = "5.1.823"; 
     5                protected static var _version:String = "5.1.824"; 
    66                 
    77                public static function get version():String { 
Note: See TracChangeset for help on using the changeset viewer.