Changeset 2058


Ignore:
Timestamp:
01/12/12 18:53:38 (16 months ago)
Author:
pablo
Message:

Saves volume and mute states in HTML5 as well as Flash. Also synchronizes between the two modes (1541)

Location:
trunk/fl5
Files:
12 edited

Legend:

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

    r2057 r2058  
    1919var $jw = jwplayer; 
    2020 
    21 jwplayer.version = '5.9.2057'; 
     21jwplayer.version = '5.9.2058'; 
    2222 
    2323// "Shiv" method for older IE browsers; required for parsing media tags 
     
    912912                 
    913913                return translated; 
     914        } 
     915         
     916        jwplayer.utils.saveCookie = function(name, value) { 
     917                document.cookie = "jwplayer." + name + "=" + value + "; path=/"; 
     918        } 
     919 
     920        jwplayer.utils.getCookies = function() { 
     921                var jwCookies = {}; 
     922                var cookies = document.cookie.split('; '); 
     923                for (var i=0; i<cookies.length; i++) { 
     924                        var split = cookies[i].split('='); 
     925                        if (split[0].indexOf("jwplayer.") == 0) { 
     926                                jwCookies[split[0].substring(9, split[0].length)] = split[1]; 
     927                        } 
     928                } 
     929                return jwCookies; 
     930        } 
     931         
     932        jwplayer.utils.readCookie = function(name) { 
     933                return jwplayer.utils.getCookies()[name]; 
    914934        } 
    915935 
     
    38413861                        } 
    38423862                         
     3863                        // If we've set any cookies in HTML5 mode, bring them into flash 
     3864                        var cookies = jwplayer.utils.getCookies(); 
     3865                        for (var cookie in cookies) { 
     3866                                if (typeof(params[cookie])=="undefined") { 
     3867                                        params[cookie] = cookies[cookie]; 
     3868                                } 
     3869                        } 
     3870                         
    38433871                        var bgcolor = "#000000"; 
    38443872                         
     
    60956123                                                break; 
    60966124                                } 
    6097                                 _model.volume = volume; 
     6125                                _model.setVolume(volume); 
    60986126                                return true; 
    60996127                        } catch (err) { 
     
    61116139                                if (typeof state == "undefined") { 
    61126140                                        media.mute(!_model.mute); 
    6113                                         _model.mute = !_model.mute; 
     6141                                        _model.setMute(!_model.mute); 
    61146142                                } else { 
    61156143                                        if (state.toString().toLowerCase() == "true") { 
    61166144                                                media.mute(true); 
    6117                                                 _model.mute = true; 
     6145                                                _model.setMute(true); 
    61186146                                        } else { 
    61196147                                                media.mute(false); 
    6120                                                 _model.mute = false; 
     6148                                                _model.setMute(false); 
    61216149                                        } 
    61226150                                } 
     
    72967324 
    72977325                function _copyModel() { 
    7298                         _fakemodel.mute = _model.mute; 
    7299                         _fakemodel.volume = _model.volume; 
     7326                        _fakemodel.setMute(_model.mute); 
     7327                        _fakemodel.setVolume(_model.volume); 
    73007328                } 
    73017329                 
     
    83148342                /** Change the video's volume level. **/ 
    83158343                this.volume = function(position) { 
    8316                         _model.volume = position; 
     8344                        _model.setVolume(position); 
    83178345                        _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_VOLUME, { 
    83188346                                volume: Math.round(position) 
     
    83248352                this.mute = function(state) { 
    83258353                        _container.muted = state; 
    8326 //                      _model.mute = state; 
     8354//                      _model.setMute(state); 
    83278355                        _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_MUTE, { 
    83288356                                mute: state 
     
    84638491(function(jwplayer) { 
    84648492        var _configurableStateVariables = ["width", "height", "start", "duration", "volume", "mute", "fullscreen", "item", "plugins", "stretching"]; 
     8493        var _utils = jwplayer.utils; 
    84658494         
    84668495        jwplayer.html5.model = function(api, container, options) { 
    84678496                var _api = api; 
    84688497                var _container = container; 
     8498                var _cookies = _utils.getCookies(); 
    84698499                var _model = { 
    84708500                        id: _container.id, 
     
    84848514                                duration: 0, 
    84858515                                bufferlength: 5, 
    8486                                 volume: 90, 
    8487                                 mute: false, 
     8516                                volume: _cookies.volume ? _cookies.volume : 90, 
     8517                                mute: _cookies.mute && _cookies.mute.toString().toLowerCase() == "true" ? true : false, 
    84888518                                fullscreen: false, 
    84898519                                repeat: "", 
     
    87608790                        return _media.seek(pos); 
    87618791                }; 
     8792                 
     8793                _model.setVolume = function(newVol) { 
     8794                        _utils.saveCookie("volume", newVol); 
     8795                        _model.volume = newVol; 
     8796                } 
     8797 
     8798                _model.setMute = function(state) { 
     8799                        _utils.saveCookie("mute", state); 
     8800                        _model.mute = state; 
     8801                } 
    87628802 
    87638803                 
  • trunk/fl5/js/src/embed/jwplayer.embed.flash.js

    r2049 r2058  
    155155                                        params["dock"] = params["dock.position"]; 
    156156                                        delete params["dock.position"];                                  
     157                                } 
     158                        } 
     159                         
     160                        // If we've set any cookies in HTML5 mode, bring them into flash 
     161                        var cookies = jwplayer.utils.getCookies(); 
     162                        for (var cookie in cookies) { 
     163                                if (typeof(params[cookie])=="undefined") { 
     164                                        params[cookie] = cookies[cookie]; 
    157165                                } 
    158166                        } 
  • trunk/fl5/js/src/html5/jwplayer.html5.controller.js

    r2049 r2058  
    320320                                                break; 
    321321                                } 
    322                                 _model.volume = volume; 
     322                                _model.setVolume(volume); 
    323323                                return true; 
    324324                        } catch (err) { 
     
    336336                                if (typeof state == "undefined") { 
    337337                                        media.mute(!_model.mute); 
    338                                         _model.mute = !_model.mute; 
     338                                        _model.setMute(!_model.mute); 
    339339                                } else { 
    340340                                        if (state.toString().toLowerCase() == "true") { 
    341341                                                media.mute(true); 
    342                                                 _model.mute = true; 
     342                                                _model.setMute(true); 
    343343                                        } else { 
    344344                                                media.mute(false); 
    345                                                 _model.mute = false; 
     345                                                _model.setMute(false); 
    346346                                        } 
    347347                                } 
  • trunk/fl5/js/src/html5/jwplayer.html5.instream.js

    r2050 r2058  
    173173 
    174174                function _copyModel() { 
    175                         _fakemodel.mute = _model.mute; 
    176                         _fakemodel.volume = _model.volume; 
     175                        _fakemodel.setMute(_model.mute); 
     176                        _fakemodel.setVolume(_model.volume); 
    177177                } 
    178178                 
  • trunk/fl5/js/src/html5/jwplayer.html5.mediayoutube.js

    r2032 r2058  
    8181                /** Change the video's volume level. **/ 
    8282                this.volume = function(position) { 
    83                         _model.volume = position; 
     83                        _model.setVolume(position); 
    8484                        _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_VOLUME, { 
    8585                                volume: Math.round(position) 
     
    9191                this.mute = function(state) { 
    9292                        _container.muted = state; 
    93 //                      _model.mute = state; 
     93//                      _model.setMute(state); 
    9494                        _eventDispatcher.sendEvent(jwplayer.api.events.JWPLAYER_MEDIA_MUTE, { 
    9595                                mute: state 
  • trunk/fl5/js/src/html5/jwplayer.html5.model.js

    r2053 r2058  
    77(function(jwplayer) { 
    88        var _configurableStateVariables = ["width", "height", "start", "duration", "volume", "mute", "fullscreen", "item", "plugins", "stretching"]; 
     9        var _utils = jwplayer.utils; 
    910         
    1011        jwplayer.html5.model = function(api, container, options) { 
    1112                var _api = api; 
    1213                var _container = container; 
     14                var _cookies = _utils.getCookies(); 
    1315                var _model = { 
    1416                        id: _container.id, 
     
    2830                                duration: 0, 
    2931                                bufferlength: 5, 
    30                                 volume: 90, 
    31                                 mute: false, 
     32                                volume: _cookies.volume ? _cookies.volume : 90, 
     33                                mute: _cookies.mute && _cookies.mute.toString().toLowerCase() == "true" ? true : false, 
    3234                                fullscreen: false, 
    3335                                repeat: "", 
     
    304306                        return _media.seek(pos); 
    305307                }; 
     308                 
     309                _model.setVolume = function(newVol) { 
     310                        _utils.saveCookie("volume", newVol); 
     311                        _model.volume = newVol; 
     312                } 
     313 
     314                _model.setMute = function(state) { 
     315                        _utils.saveCookie("mute", state); 
     316                        _model.mute = state; 
     317                } 
    306318 
    307319                 
  • trunk/fl5/js/src/jwplayer.js

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

    r2057 r2058  
    888888                return translated; 
    889889        } 
     890         
     891        jwplayer.utils.saveCookie = function(name, value) { 
     892                document.cookie = "jwplayer." + name + "=" + value + "; path=/"; 
     893        } 
     894 
     895        jwplayer.utils.getCookies = function() { 
     896                var jwCookies = {}; 
     897                var cookies = document.cookie.split('; '); 
     898                for (var i=0; i<cookies.length; i++) { 
     899                        var split = cookies[i].split('='); 
     900                        if (split[0].indexOf("jwplayer.") == 0) { 
     901                                jwCookies[split[0].substring(9, split[0].length)] = split[1]; 
     902                        } 
     903                } 
     904                return jwCookies; 
     905        } 
     906         
     907        jwplayer.utils.readCookie = function(name) { 
     908                return jwplayer.utils.getCookies()[name]; 
     909        } 
    890910 
    891911})(jwplayer); 
  • trunk/fl5/src/com/longtailvideo/jwplayer/player/JavascriptAPI.as

    r2049 r2058  
    9696                        _player.addEventListener(MediaEvent.JWPLAYER_MEDIA_TIME, updatePosition); 
    9797                        _player.addEventListener(MediaEvent.JWPLAYER_MEDIA_BUFFER, updateBuffer); 
     98                        _player.addEventListener(MediaEvent.JWPLAYER_MEDIA_VOLUME, updateVolumeCookie); 
     99                        _player.addEventListener(MediaEvent.JWPLAYER_MEDIA_MUTE, updateMuteCookie); 
    98100                } 
    99101                 
     
    109111                protected function updateBuffer(evt:MediaEvent):void { 
    110112                        _playerBuffer = evt.bufferPercent; 
     113                } 
     114                 
     115                protected function updateVolumeCookie(evt:MediaEvent):void { 
     116                        ExternalInterface.call("function(vol) { try { jwplayer.utils.saveCookie('volume', vol) } catch(e) {} }", evt.volume.toString()); 
     117                } 
     118 
     119                protected function updateMuteCookie(evt:MediaEvent):void { 
     120                        ExternalInterface.call("function(state) { try { jwplayer.utils.saveCookie('mute', state) } catch(e) {} }", evt.mute.toString()); 
    111121                } 
    112122 
  • trunk/fl5/src/com/longtailvideo/jwplayer/player/PlayerVersion.as

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

    r2057 r2058  
    448448                                        _image.height = _image.contentLoaderInfo.height; 
    449449                                } catch(e:Error) { 
    450                                         Logger.log("no good"); 
     450                                        // Resize image later 
     451                                        return; 
    451452                                } 
    452453                                if (_preserveAspect) { 
Note: See TracChangeset for help on using the changeset viewer.