Changeset 826


Ignore:
Timestamp:
02/10/10 12:40:36 (3 years ago)
Author:
pablo
Message:
  • Clean up for locking scenarios
  • MediaEvent.JWPLAYER_MEDIA_VOLUME event not sent on every item load (only sent in response to a setVolume() call)
  • DisplayComponent dispatches PLAY and PAUSE events, in addition to DISPLAY_CLICK
  • PlaylistComponent dispatches ITEM events
  • Debug options visible in right-click menu when "debug" flashvar is set, even when using the non-debug Flash Player
Location:
trunk/fl5
Files:
14 edited

Legend:

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

    r824 r826  
    257257                                // Tell everyone you're locked 
    258258                                if (!wasLocked) { 
     259                                        Logger.log(plugin.id + " locking playback", "LOCK"); 
    259260                                        dispatchEvent(new PlayerEvent(PlayerEvent.JWPLAYER_LOCKED)); 
    260261                                        _lockManager.executeCallback(); 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/HTTPMediaProvider.as

    r819 r826  
    196196                        sendBufferEvent(0, 0); 
    197197                        sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_LOADED); 
    198                         config.mute == true ? setVolume(0) : setVolume(config.volume); 
     198                        streamVolume(config.mute ? 0 : config.volume); 
    199199                } 
    200200 
     
    370370                /** Set the volume level. **/ 
    371371                override public function setVolume(vol:Number):void { 
    372                         _transformer.volume = vol / 100; 
    373                         _stream.soundTransform = _transformer; 
     372                        streamVolume(vol); 
    374373                        super.setVolume(vol); 
     374                } 
     375 
     376                /** Set the stream's volume, without sending a volume event **/ 
     377                protected function streamVolume(level:Number):void { 
     378                        _transformer.volume = level / 100; 
     379                        if (_stream) { 
     380                                _stream.soundTransform = _transformer; 
     381                        } 
    375382                } 
    376383 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/ImageMediaProvider.as

    r802 r826  
    8080                /** Resume playback of the_item. **/ 
    8181                override public function play():void { 
     82                        _postitionInterval = setInterval(positionInterval, 100); 
    8283                        super.play(); 
    83                         _postitionInterval = setInterval(positionInterval, 100); 
    8484                } 
    8585 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/RTMPMediaProvider.as

    r824 r826  
    7171                /** Interval ID for growing the DVR duration. **/ 
    7272                private var _dvrInterval:Number; 
     73                /** Whether we should pause the stream when we first connect to it **/ 
     74                private var     _lockOnStream:Boolean = false; 
    7375 
    7476                public function RTMPMediaProvider() { 
     
    170172                        _bufferFull = false; 
    171173                        _bandwidthSwitch = false;                        
     174                        _lockOnStream = false;                   
    172175            _timeoffset = item.start; 
    173176                        if (item.levels.length > 0) { item.setLevel(item.getLevel(config.bandwidth, config.width)); } 
     
    295298                        clearInterval(_positionInterval); 
    296299                        super.pause(); 
    297             if (_stream) {  
    298                                 Logger.log("NetStream.pause()"); 
     300            if (_stream) { 
    299301                                _stream.pause();  
     302                        } else { 
     303                                _lockOnStream = true; 
    300304                        } 
    301305        } 
     
    304308        override public function play():void { 
    305309                        clearInterval(_positionInterval); 
    306             if (state == PlayerState.PAUSED) { 
    307                                 Logger.log("NetStream.resume()"); 
    308                                 _stream.resume();                                
     310                        if (_lockOnStream) { 
     311                                _lockOnStream = false; 
     312                                seek(_timeoffset); 
     313                        } else if (state == PlayerState.PAUSED) { 
     314                                _stream.resume(); 
    309315                        } 
    310316                        super.play(); 
     
    333339                                sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_TIME, {position: position, duration: duration}); 
    334340            } else if (position > 0 && duration > 0 && (!isDVR || _dvrTotalDuration > 0)) { 
    335                                 Logger.log("NetStream.pause()"); 
    336341                _stream.pause(); 
    337342                clearInterval(_positionInterval); 
     
    373378                        } 
    374379            if (getConfigProperty('subscribe')) { 
    375                                 Logger.log("NetStream.play(" + getID(item.file) + ")"); 
    376380                _stream.play(getID(item.file)); 
    377381                        } else if(isDVR) { 
     
    390394                if (_currentFile != item.file) { 
    391395                    _currentFile = item.file; 
    392                                         Logger.log("NetStream.play(" + getID(item.file) + ")"); 
    393396                                        try { 
    394397                        _stream.play(getID(item.file)); 
     
    399402                if (_timeoffset > 0 || state == PlayerState.IDLE) { 
    400403                    if (_stream) { 
    401                                                 Logger.log("NetStream.seek(" + _timeoffset + ")"); 
    402404                                                _stream.seek(_timeoffset); 
    403405                                        } 
     
    421423                        _stream.client = new NetClient(this); 
    422424                        _video.attachNetStream(_stream); 
    423                         config.mute == true ? setVolume(0) : setVolume(config.volume); 
    424                         seek(_timeoffset); 
     425 
     426                        streamVolume(config.mute ? 0 : config.volume); 
     427 
     428                        if (!_lockOnStream) { 
     429                                seek(_timeoffset); 
     430                        } 
    425431        } 
    426432 
     
    521527        override public function stop():void { 
    522528            if (_stream && _stream.time) { 
    523                                 Logger.log("NetStream.close()"); 
    524529                                _stream.close(); 
    525530            } 
     
    548553        /** Get the streamlength returned from the connection. **/ 
    549554        private function streamlengthHandler(len:Number):void { 
    550                         Logger.log("duration: " + len); 
    551                          
    552555                        if (isDVR && _dvrTotalDuration > 0) { 
    553556                                _dvrDuration = len; 
     
    568571                nso.streamName = getID(item.file); 
    569572                nso.transition = NetStreamPlayTransitions.SWITCH; 
    570                                 Logger.log("NetStream.play2(" + nso + ")"); 
    571573                _stream.play2(nso); 
    572574            } 
     
    575577        /** Set the volume level. **/ 
    576578        override public function setVolume(vol:Number):void { 
    577             _transformer.volume = vol / 100; 
    578                          
    579             if (_stream) { 
    580                 _stream.soundTransform = _transformer; 
    581             } 
    582                          
     579                        streamVolume(vol); 
    583580                        super.setVolume(vol); 
    584581        } 
     582                 
     583                /** Set the stream's volume, without sending a volume event **/ 
     584                protected function streamVolume(level:Number):void { 
     585                        _transformer.volume = level / 100; 
     586                        if (_stream) { 
     587                                _stream.soundTransform = _transformer; 
     588                        } 
     589                } 
    585590                 
    586591                /** Completes video playback **/ 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/SoundMediaProvider.as

    r809 r826  
    9292                        sendBufferEvent(0); 
    9393                        sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_LOADED); 
    94                         config.mute == true ? setVolume(0) : setVolume(config.volume); 
     94                        streamVolume(config.mute ? 0 : config.volume); 
    9595                } 
    9696 
     
    208208                /** Set the volume level. **/ 
    209209                override public function setVolume(vol:Number):void { 
    210                         _transformer.volume = vol / 100; 
     210                        streamVolume(vol); 
     211                        super.setVolume(vol); 
     212                } 
     213                 
     214 
     215                /** Set the stream's volume, without sending a volume event **/ 
     216                protected function streamVolume(level:Number):void { 
     217                        _transformer.volume = level / 100; 
    211218                        if (_channel) { 
    212219                                _channel.soundTransform = _transformer; 
    213220                        } 
    214                         super.setVolume(vol); 
    215221                } 
    216222        } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/VideoMediaProvider.as

    r819 r826  
    9393                        } 
    9494 
    95                         super.load(itm); 
    9695                        _item = itm; 
    97  
    98                         config.mute == true ? setVolume(0) : setVolume(config.volume); 
    9996 
    10097                        setState(PlayerState.BUFFERING); 
    10198                        sendBufferEvent(0); 
     99 
     100                        super.load(itm); 
     101                         
     102                        streamVolume(config.mute ? 0 : config.volume); 
     103                         
    102104                        clearInterval(_positionInterval); 
    103105                        _positionInterval = setInterval(positionHandler, 200); 
     
    247249                /** Set the volume level. **/ 
    248250                override public function setVolume(vol:Number):void { 
    249                         _transformer.volume = vol / 100; 
    250                         _stream.soundTransform = _transformer; 
     251                        streamVolume(vol);                       
    251252                        super.setVolume(vol); 
     253                } 
     254                 
     255                /** Set the stream's volume, without sending a volume event **/ 
     256                protected function streamVolume(level:Number):void { 
     257                        _transformer.volume = level / 100; 
     258                        if (_stream) { 
     259                                _stream.soundTransform = _transformer; 
     260                        } 
    252261                } 
    253262        } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/media/YouTubeMediaProvider.as

    r819 r826  
    106106                        _loading = true; 
    107107                        setState(PlayerState.BUFFERING); 
    108                         sendBufferEvent(0); 
    109108                        if (_connected) { 
    110109                                completeLoad(itm); 
     
    133132                                media = _loader; 
    134133                                sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_LOADED); 
    135                                 config.mute == true ? setVolume(0) : setVolume(config.volume); 
     134                                sendBufferEvent(0); 
    136135                                sendMediaEvent(MediaEvent.JWPLAYER_MEDIA_BUFFER_FULL); 
     136                                _outgoing.send('AS3_' + _unique, "setVolume", (config.mute ? 0 : config.volume / 100)); 
    137137                        } 
    138138                } 
     
    141141                /** Pause the YouTube movie. **/ 
    142142                override public function pause():void { 
    143                         _outgoing.send('AS3_' + _unique, "pauseVideo"); 
     143                        if (state == PlayerState.PLAYING || state == PlayerState.BUFFERING) { 
     144                                _outgoing.send('AS3_' + _unique, "pauseVideo"); 
     145                        } 
    144146                        super.pause(); 
    145147                } 
     
    185187                                        break; 
    186188                                case 2: 
    187 //                                      super.pause(); 
     189                                        super.pause(); 
    188190                                        break; 
    189191                                case 3: 
  • trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as

    r824 r826  
    33         
    44        public class PlayerVersion { 
    5                 protected static var _version:String = "5.1.824"; 
     5                protected static var _version:String = "5.1.826"; 
    66                 
    77                public static function get version():String { 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/RightclickMenu.as

    r776 r826  
    33        import com.longtailvideo.jwplayer.events.GlobalEventDispatcher; 
    44        import com.longtailvideo.jwplayer.events.ViewEvent; 
    5         import com.longtailvideo.jwplayer.model.PlayerConfig; 
    65        import com.longtailvideo.jwplayer.player.IPlayer; 
    76        import com.longtailvideo.jwplayer.utils.Configger; 
     
    6362                        stretching = new ContextMenuItem('Stretching is ' + _player.config.stretching + '...'); 
    6463                        addItem(stretching, stretchHandler); 
    65                         if (Capabilities.isDebugger == true) { 
     64                        if (Capabilities.isDebugger == true || _player.config.debug != Logger.NONE) { 
    6665                                debug = new ContextMenuItem('Logging to ' + _player.config.debug + '...'); 
    6766                                addItem(debug, debugHandler); 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/components/DisplayComponent.as

    r781 r826  
    258258                        dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_CLICK)); 
    259259                        if (player.state == PlayerState.PLAYING || player.state == PlayerState.BUFFERING) { 
     260                                dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_PAUSE)); 
    260261                                player.pause(); 
    261262                        } else { 
     263                                dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_PLAY)); 
    262264                                player.play(); 
    263265                        } 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/components/PlaylistComponent.as

    r801 r826  
    22        import com.longtailvideo.jwplayer.events.PlayerStateEvent; 
    33        import com.longtailvideo.jwplayer.events.PlaylistEvent; 
     4        import com.longtailvideo.jwplayer.events.ViewEvent; 
    45        import com.longtailvideo.jwplayer.model.PlaylistItem; 
    56        import com.longtailvideo.jwplayer.player.IPlayer; 
     
    570571                /** Handle a click on a button. **/ 
    571572                private function clickHandler(evt:MouseEvent):void { 
    572                         _player.playlistItem(Number(evt.target.name)); 
     573                        var itemNumber:Number = Number(evt.target.name);  
     574                        dispatchEvent(new ViewEvent(ViewEvent.JWPLAYER_VIEW_ITEM, itemNumber));  
     575                        _player.playlistItem(itemNumber); 
    573576                } 
    574577                 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/interfaces/IDisplayComponent.as

    r407 r826  
    1111         */ 
    1212        [Event(name="jwPlayerViewPlay", type = "com.longtailvideo.jwplayer.events.ViewEvent")] 
     13         
     14        /** 
     15         * Sent when the user interface requests that the player pause the currently playing media 
     16         * 
     17         * @eventType com.longtailvideo.jwplayer.events.ViewEvent.JWPLAYER_VIEW_PAUSE 
     18         */ 
     19        [Event(name="jwPlayerViewPause", type = "com.longtailvideo.jwplayer.events.ViewEvent")] 
    1320 
    14         /** 
    15          * Sent when the user requests the player set its fullscreen state to the given value 
    16          * 
    17          * @eventType com.longtailvideo.jwplayer.events.ViewEvent.JWPLAYER_VIEW_FULLSCREEN 
    18          */ 
    19         [Event(name="jwPlayerViewFullscreen", type = "com.longtailvideo.jwplayer.events.ViewEvent")] 
    20          
    2121        /** 
    2222         * Sent when the user clicks on the display 
  • trunk/fl5/src/com/longtailvideo/jwplayer/view/interfaces/IPlaylistComponent.as

    r407 r826  
    22        import com.longtailvideo.jwplayer.events.IGlobalEventDispatcher; 
    33         
    4  
    5         /** 
    6          * Sent when the user interface requests that the player play the next item in its playlist 
    7          * 
    8          * @eventType com.longtailvideo.jwplayer.events.ViewEvent.JWPLAYER_VIEW_NEXT 
    9          */ 
    10         [Event(name="jwPlayerViewNext", type = "com.longtailvideo.jwplayer.events.ViewEvent")] 
    11  
    12         /** 
    13          * Sent when the user interface requests that the player play the previous item in its playlist 
    14          * 
    15          * @eventType com.longtailvideo.jwplayer.events.ViewEvent.JWPLAYER_VIEW_PREV 
    16          */ 
    17         [Event(name="jwPlayerViewPrev", type = "com.longtailvideo.jwplayer.events.ViewEvent")] 
    184 
    195        /** 
Note: See TracChangeset for help on using the changeset viewer.