Ignore:
Timestamp:
08/30/10 19:06:53 (3 years ago)
Author:
pablo
Message:
  • Queues calls to seek() if called before the MediaProvidre is ready to seek (749)
  • Fixes an issue related to 606, where changing the stretching mode while in fullscreen could break the layout.
File:
1 edited

Legend:

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

    r1228 r1252  
    8484                /** Whether the playlist has been loaded yet **/ 
    8585                protected var _playlistReady:Boolean = false; 
    86                  
     86                /** Set this value if a seek request comes in before the seek is possible **/            
     87                protected var _queuedSeek:Number = -1; 
    8788                 
    8889                /** A list with legacy CDN classes that are now redirected to buit-in ones. **/ 
     
    373374                                                break; 
    374375                                        case PlayerState.PAUSED: 
    375                                                 _model.media.play(); 
     376                                                if (_queuedSeek >= 0) { 
     377                                                        _model.media.seek(_queuedSeek); 
     378                                                        _queuedSeek = -1; 
     379                                                } else { 
     380                                                        _model.media.play(); 
     381                                                } 
    376382                                                break; 
    377383                                } 
     
    478484                } 
    479485 
    480  
    481486                public function seek(pos:Number):Boolean { 
    482487                        if (locking) { 
    483488                                return false; 
    484489                        } 
    485                         if (!_model.media) 
    486                                 return false; 
     490                        if (!_model.media) { 
     491                                _queuedSeek = pos; 
     492                                return false; 
     493                        } 
    487494 
    488495                        switch (_model.media.state) { 
    489496                                case PlayerState.PLAYING: 
    490                                 case PlayerState.BUFFERING: 
    491497                                case PlayerState.PAUSED: 
    492498                                        _model.media.seek(pos); 
    493499                                        return true; 
     500                                        break; 
     501                                case PlayerState.BUFFERING: 
     502                                case PlayerState.IDLE: 
     503                                        _queuedSeek = pos; 
    494504                                        break; 
    495505                        } 
     
    630640                private function bufferFullHandler(evt:MediaEvent):void { 
    631641                        if (!locking) { 
    632                                 _model.media.play(); 
     642                                if (_queuedSeek >= 0) { 
     643                                        _model.media.seek(_queuedSeek); 
     644                                        _queuedSeek = -1; 
     645                                } else { 
     646                                        _model.media.play(); 
     647                                } 
    633648                        } else { 
    634649                                _lockingResume = true; 
     
    647662 
    648663                public function fullscreen(mode:Boolean):Boolean { 
     664                        _view.fullscreen(mode); 
    649665                        _model.fullscreen = mode; 
    650                         _view.fullscreen(mode); 
    651666                        dispatchEvent(new PlayerEvent(PlayerEvent.JWPLAYER_FULLSCREEN, mode.toString())); 
    652667                        return true; 
Note: See TracChangeset for help on using the changeset viewer.