Changeset 982


Ignore:
Timestamp:
05/03/10 11:22:43 (3 years ago)
Author:
zach
Message:
  • Adding default skin (non-working)
  • Modified logging for debugger
Location:
trunk/html5
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/html5/index.html

    r975 r982  
    3535        $('#player1').jwplayer({ 
    3636                skin:'assets/five/five.xml', 
    37                 repeat: 'list' 
     37                repeat: 'list', 
     38                debug: 'CONSOLE' 
    3839        }); 
    3940</script> 
  • trunk/html5/jquery.jwplayer.js

    r978 r982  
    736736         
    737737        function setupJWPlayer(player, step, options) { 
    738                 $.fn.jwplayerUtils.log("Starting step " + step, { 
    739                         player: player, 
    740                         options: options 
    741                 }); 
    742738                try { 
    743739                        switch (step) { 
     
    765761                                case 4: 
    766762                                        $.fn.jwplayerSkinner(player, function() { 
    767                                                 $.fn.jwplayerUtils.log("Skin loading complete", player); 
    768763                                                setupJWPlayer(player, step + 1); 
    769764                                        }); 
     
    925920})(jQuery); 
    926921/** 
     922 * JW Player Defaul 
     923 * 
     924 * @author jeroen 
     925 * @version 1.0alpha 
     926 * @lastmodifiedauthor zach 
     927 * @lastmodifieddate 2010-04-11 
     928 */ 
     929(function($) { 
     930 
     931        /** Constructor **/ 
     932        $.fn.jwplayerDefaultSkin = '<?xml version="1.0" ?><skin author="LongTail Video" name="Five" version="1.0"><settings><setting name="backcolor" value="0xFFFFFF"/><setting name="frontcolor" value="0x000000"/><setting name="lightcolor" value="0x000000"/><setting name="screencolor" value="0x000000"/></settings><components><component name="controlbar"><settings><setting name="margin" value="20"/><setting name="fontsize" value="11"/></settings><elements><element name="background" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAIAAABvFaqvAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFJJREFUeNrslLENwAAIwxLU/09j5AiOgD5hVQzNAVY8JK4qEfHMIKBnd2+BQlBINaiRtL/aV2rdzYBsM6CIONbI1NZENTr3RwdB2PlnJgJ6BRgA4hwu5Qg5iswAAAAASUVORK5CYII=\')"/><element name="capLeft" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC\')"/><element name="capRight" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC\')"/><element name="divider" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAYCAIAAAC0rgCNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNosi8ENACAMAgnuv14H0Z8asI19XEjhOiKCMmibVgJTUt7V6fe9KXOtSQCfctJHu2q3/ot79hNgANc2OTz9uTCCAAAAAElFTkSuQmCC\')"/><element name="playButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhJREFUeNpiYqABYBo1dNRQ+hr6H4jvA3E8NS39j4SpZvh/LJig4YxEGEqy3kET+w+AOGFQRhTJhrEQkGcczfujhg4CQwECDADpTRWU/B3wHQAAAABJRU5ErkJggg==\')"/><element name="pauseButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAChJREFUeNpiYBgFo2DwA0YC8v/R1P4nRu+ooaOGUtnQUTAKhgIACDAAFCwQCfAJ4gwAAAAASUVORK5CYII=\')"/><element name="prevButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEtJREFUeNpiYBgFo2Dog/9QDAPyQHweTYwiQ/2B+D0Wi8g2tB+JTdBQRiIMJVkvEy0iglhDF9Aq9uOpHVEwoE+NJDUKRsFgAAABBgDe2hqZcNNL0AAAAABJRU5ErkJggg==\')"/><element name="nextButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAYCAYAAAAVibZIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAElJREFUeNpiYBgFo2Dog/9AfB6I5dHE/lNqKAi/B2J/ahsKw/3EGMpIhKEk66WJoaR6fz61IyqemhEFSlL61ExSo2AUDAYAEGAAiG4hj+5t7M8AAAAASUVORK5CYII=\')"/><element name="timeSliderRail" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADxJREFUeNpiYBgFo2AU0Bwwzluw+D8tLWARFhKiqQ9YuLg4aWsBGxs7bS1gZ6e5BWyjSX0UjIKhDgACDABlYQOGh5pYywAAAABJRU5ErkJggg==\')"/><element name="timeSliderBuffer" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFo2AU0Bww1jc0/aelBSz8/Pw09QELOzs7bS1gY2OjrQWsrKy09gHraFIfBaNgqAOAAAMAvy0DChXHsZMAAAAASUVORK5CYII=\')"/><element name="timeSliderProgress" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiYBgFo2AU0BwwAvF/WlrARGsfjFow8BaMglEwCugAAAIMAOHfAQunR+XzAAAAAElFTkSuQmCC\')"/><element name="timeSliderThumb" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAICAYAAAA870V8AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABZJREFUeNpiZICA/yCCiQEJUJcDEGAAY0gBD1/m7Q0AAAAASUVORK5CYII=\')"/><element name="muteButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiYBgFIw3MB+L/5Gj8j6yRiRTFyICJXHfTXyMLAXlGati4YDRFDj8AEGAABk8GSqqS4CoAAAAASUVORK5CYII=\')"/><element name="unmuteButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAYCAYAAADKx8xXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYBgFgxz8p7bm+cQa+h8LHy7GhEcjIz4bmAjYykiun/8j0fakGPIfTfPgiSr6aB4FVAcAAQYAWdwR1G1Wd2gAAAAASUVORK5CYII=\')"/><element name="volumeSliderRail" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGpJREFUeNpi/P//PwM9ABMDncCoRYPfIqqDZcuW1UPp/6AUDcNM1DQYKtRAlaAj1mCSLSLXYIIWUctgDItoZfDA5aOoqKhGEANIM9LVR7SymGDQUctikuOIXkFNdhHEOFrDjlpEd4sAAgwAriRMub95fu8AAAAASUVORK5CYII=\')"/><element name="volumeSliderProgress" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAYCAYAAADkgu3FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFtJREFUeNpi/P//PwM9ABMDncCoRYPfIlqAeij9H5SiYZiqBqPTlFqE02BKLSLaYFItIttgQhZRzWB8FjENiuRJ7aAbsMQwYMl7wDIsWUUQ42gNO2oR3S0CCDAAKhKq6MLLn8oAAAAASUVORK5CYII=\')"/><element name="fullscreenButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE5JREFUeNpiYBgFo2DQA0YC8v/xqP1PjDlMRDrEgUgxkgHIlfZoriVGjmzLsLFHAW2D6D8eA/9Tw7L/BAwgJE90PvhPpNgoGAVDEQAEGAAMdhTyXcPKcAAAAABJRU5ErkJggg==\')"/><element name="normalscreenButton" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEZJREFUeNpiYBgFo2DIg/9UUkOUAf8JiFFsyX88fJyAkcQgYMQjNkzBoAgiezyRbE+tFGSPxQJ7auYBmma0UTAKBhgABBgAJAEY6zON61sAAAAASUVORK5CYII=\')"/></elements></component><component name="display"><elements><element name="background" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEpJREFUeNrszwENADAIA7DhX8ENoBMZ5KR10EryckCJiIiIiIiIiIiIiIiIiIiIiIh8GmkRERERERERERERERERERERERGRHSPAAPlXH1phYpYaAAAAAElFTkSuQmCC\')"/><element name="playIcon" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrs18ENgjAYhmFouDOCcQJGcARHgE10BDcgTOIosAGwQOuPwaQeuFRi2p/3Sb6EC5L3QCxZBgAAAOCorLW1zMn65TrlkH4NcV7QNcUQt7Gn7KIhxA+qNIR81spOGkL8oFJDyLJRdosqKDDkK+iX5+d7huzwM40xptMQMkjIOeRGo+VkEVvIPfTGIpKASfYIfT9iCHkHrBEzf4gcUQ56aEzuGK/mw0rHpy4AAACAf3kJMACBxjAQNRckhwAAAABJRU5ErkJggg==\')"/><element name="muteIcon" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNrs1jEOgCAMBVAg7t5/8qaoIy4uoobyXsLCxA+0NCUAAADGUWvdQoQ41x4ixNBB2hBvBskdD3w5ZCkl3+33VqI0kjBBlh9rp+uTcyOP33TnolfsU85XX3yIRpQph8ZQY3wTZtU5AACASA4BBgDHoVuY1/fvOQAAAABJRU5ErkJggg==\')"/><element name="errorIcon" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWlJREFUeNrsl+1twjAQhsHq/7BBYQLYIBmBDcoGMAIjtBPQTcII2SDtBDBBwrU6pGsUO7YbO470PtKJkz9iH++d4ywWAAAAAABgljRNsyWr2bZzDuJG1rLdZhcMbTjrBCGDyUKsqQLFciJb9bSvuG/WagRVRUVUI6gqy5HVeKWfSgRyJruKIU//TrZTSn2nmlaXThrloi/v9F2STC1W4+Aw5cBzkquRc09bofFNc6YLxEON0VUZS5FPTftO49vMjRsIF3RhOGr7/D/pJw+FKU+q0vDyq8W42jCunDqI3LC5XxNj2wHLU1XjaRnb0Lhykhqhhd8MtSF5J9tbjCv4mXGvKJz/65FF/qJryyaaIvzP2QRxZTX2nTuXjvV/VPFSwyLnW7mpH99yTh1FEVro6JBSd40/pMrRdV8vPtcKl28T2pT8TnFZ4yNosct3Q0io6JfBiz1FlGdqVQH3VHnepAEAAAAAADDzEGAAcTwB10jWgxcAAAAASUVORK5CYII=\')"/><element name="bufferIcon" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAuhJREFUeNrsWr9rU1EUznuNGqvFQh1ULOhiBx0KDtIuioO4pJuik3FxFfUPaAV1FTdx0Q5d2g4FFxehTnEpZHFoBy20tCIWtGq0TZP4HfkeHB5N8m6Sl/sa74XDybvv3vvOd8/Pe4lXrVZT3dD8VJc0B8QBcUAcEAfESktHGeR5XtMfqFQq/f92zPe/NbtGlKTdCY30kuxrpMGO94BlQCXs+rbh3ONgA6BlzP1p20d80gEI5hmA2A92Qua1Q2PtAFISM+bvjMG8U+Q7oA3rQGASwrYCU6WpNdLGYbA+Pq5jjXIiwi8EEa2UDbQSaKOIuV+SlkcCrfjY8XTI9EpKGwP0C2kru2hLtHqa4zoXtZRWyvi4CLwv9Opr6Hkn6A9HKgEANsQ1iqC3Ub/vRUk2JgmRkatK36kVrnt0qObunwUdUUMXMWYpakJsO5Am8tAw2GBIgwWA+G2S2dMpiw0gDioQRQJoKhRb1QiDwlHZUABYbaXWsm5ae6loTE4ZDxN4CZar8foVzOJ2iyZ2kWF3t7YIevffaMT5yJ70kQb2fQ1sE5SHr2wazs2wgMxgbsEKEAgxAvZUJbQLBGTSBMgNrncJbA6AljtS/eKDJ0Ez+DmrQEzXS2h1Ck25kAg0IZcUOaydCy4sYnN2fOA+2AP16gNoHALlQ+fwH7XO4CxLenUpgj4xr6ugY2roPMbMx+Xs18m/E8CVEIhxsNeg83XWOAN6grG3lGbk8uE5fr4B/WH3cJw+co/l9nTYsSGYCJ/lY5/qv0thn6nrIWmjeJcPSnWOeY++AkF8tpJHIMAUs/MaBBpj3znZfQo5psY+ZrG4gv5HickjEOymKjEeRpgyST6IuZcTcWbnjcgdPi5ghxciRKsl1lDSsgwA1i8fssonJgzmTSqfGUkCENndNdAL7PS6QQ7ZYISTo+1qq0LEWjTWcvY4isa4z+yfQB+7ooyHVg5RI7/i1Ijn/vnggDggDogD4oC00P4KMACd/juEHOrS4AAAAABJRU5ErkJggg==\')"/></elements></component><component name="dock"><elements><element name="button" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFBJREFUeNrs0cEJACAQA8Eofu0fu/W6EM5ZSAFDRpKTBs00CQQEBAQEBAQEBAQEBAQEBATkK8iqbY+AgICAgICAgICAgICAgICAgIC86QowAG5PAQzEJ0lKAAAAAElFTkSuQmCC\')"/></elements></component><component name="playlist"><elements><element name="item" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAIAAAC1nk4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNrs2NEJwCAMBcBYuv/CFuIE9VN47WWCR7iocXR3pdWdGPqqwIoMjYfQeAiNh9B4JHc6MHQVHnjggQceeOCBBx77TifyeOY0iHi8DqIdEY8dD5cL094eePzINB5CO/LwcOTptNB4CP25L4TIbZzpU7UEGAA5wz1uF5rF9AAAAABJRU5ErkJggg==\')"/><element name="sliderRail" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNrsy6ENACAMAMHClp2wYxZLAg5Fcu9e3OjuOKqqfTMzbs14CIZhGIZhGIZhGP4VLwEGAK/BBnVFpB0oAAAAAElFTkSuQmCC\')"/><element name="sliderThumb" src="url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA8CAIAAADpFA0BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNrsy7ENACAMBLE8++8caFFKKiRffU53112SGs3ttOohGIZhGIZhGIZh+Fe8BRgAiaUGde6NOSEAAAAASUVORK5CYII=\')"/></elements></component></components></skin>'; 
     933                 
     934})(jQuery); 
     935/** 
    927936 * JW Player view component 
    928937 * 
     
    988997                                displays[obj.id].displayIconBackground.css("display", "block"); 
    989998                                displays[obj.id].displayIcon[0].src = player.skin.display.elements.bufferIcon.src; 
    990                                 $.fn.jwplayerUtils.log("offset", { 
    991                                         "display": "block", 
    992                                         top: (player.skin.display.elements.background.height - player.skin.display.elements.bufferIcon.height) / 2 + "px", 
    993                                         left: (player.skin.display.elements.background.width - player.skin.display.elements.bufferIcon.width) / 2 + "px" 
    994                                 }); 
    995999                                displays[obj.id].displayIcon.css({ 
    9961000                                        "display": "block", 
     
    13561360                        player.media.state = newstate; 
    13571361                        player.model.state = newstate; 
    1358                         $.fn.jwplayerUtils.log($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 
    1359                                 oldstate: oldstate, 
    1360                                 newstate: newstate 
    1361                         }); 
    13621362                        player.sendEvent($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 
    13631363                                oldstate: oldstate, 
     
    14011401                        } 
    14021402                } 
    1403                  
     1403                progressHandler({}, player); 
    14041404        } 
    14051405         
     
    14091409                        bufferPercent = event.loaded / event.total * 100; 
    14101410                        bufferTime = bufferPercent / 100 * player.model.duration; 
    1411                 } else if (player.model.domelement[0].buffered !== undefined) { 
     1411                } else if ((player.model.domelement[0].buffered !== undefined) &&(player.model.domelement[0].buffered.length > 0)) { 
    14121412                        maxBufferIndex = 0; 
    14131413                        if (maxBufferIndex >= 0) { 
     
    14331433                        } 
    14341434                        player.sendEvent($.fn.jwplayer.events.JWPLAYER_MEDIA_BUFFER, { 
    1435                                 'bufferPercent': bufferPercent 
     1435                                'bufferPercent': bufferPercent, 
     1436                                'bufferingComplete': player.media.bufferingComplete, 
     1437                                'bufferFull': player.media.bufferFull 
    14361438                        }); 
    14371439                } 
     
    15441546                return function(path) { 
    15451547                        path = $.fn.jwplayerUtils.getAbsolutePath(path); 
    1546                         $.fn.jwplayerUtils.log("replay:" + player.model.domelement[0].src + ":" + path + ":" + (path == player.model.domelement[0].src)); 
    15471548                        if (path == player.model.domelement[0].src && player.media.loadcount > 0) { 
    15481549                                setState(player, $.fn.jwplayer.states.BUFFERING); 
     
    17721773        /** Load the skin **/ 
    17731774        function load(player, completeHandler) { 
    1774                 $.get(player.model.config.skin, {}, function(xml) { 
    1775                         var skin = { 
    1776                                 properties: {}, 
    1777                                 incompleteElements: 0 
     1775                $.ajax({ 
     1776                        url: player.model.config.skin, 
     1777                        error: function() { 
     1778                                loadSkin(player, $.fn.jwplayerDefaultSkin, completeHandler); 
     1779                        }, 
     1780                        complete: function(xmlrequest, textStatus) { 
     1781                                if (textStatus == "success") { 
     1782                                        loadSkin(player, xmlrequest.responseText, completeHandler); 
     1783                                } else { 
     1784                                        loadSkin(player, $.fn.jwplayerDefaultSkin, completeHandler); 
     1785                                } 
     1786                        } 
     1787                         
     1788                }); 
     1789        } 
     1790         
     1791        function loadSkin(player, xml, completeHandler) { 
     1792                var skin = { 
     1793                        properties: {}, 
     1794                        incompleteElements: 0 
     1795                }; 
     1796                player.skin = skin; 
     1797                var components = $('component', xml); 
     1798                if (components.length === 0) { 
     1799                        return; 
     1800                } 
     1801                for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
     1802                        var componentName = $(components[componentIndex]).attr('name'); 
     1803                        var component = { 
     1804                                settings: {}, 
     1805                                elements: {} 
    17781806                        }; 
    1779                         player.skin = skin; 
    1780                         var components = $('component', xml); 
    1781                         for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
    1782                                 var componentName = $(components[componentIndex]).attr('name'); 
    1783                                 var component = { 
    1784                                         settings: {}, 
    1785                                         elements: {} 
    1786                                 }; 
    1787                                 player.skin[componentName] = component; 
    1788                                 var elements = $(components[componentIndex]).find('element'); 
    1789                                 player.skin.loading = true; 
    1790                                 for (var elementIndex = 0; elementIndex < elements.length; elementIndex++) { 
    1791                                         player.skin.incompleteElements++; 
    1792                                         loadImage(elements[elementIndex], componentName, player, completeHandler); 
    1793                                 } 
    1794                                 var settings = $(components[componentIndex]).find('setting'); 
    1795                                 for (var settingIndex = 0; settingIndex < settings.length; settingIndex++) { 
    1796                                         player.skin[componentName].settings[$(settings[settingIndex]).attr("name")] = $(settings[settingIndex]).attr("value"); 
    1797                                 } 
    1798                                 player.skin.loading = false; 
    1799                         } 
    1800                 }); 
     1807                        player.skin[componentName] = component; 
     1808                        var elements = $(components[componentIndex]).find('element'); 
     1809                        player.skin.loading = true; 
     1810                        for (var elementIndex = 0; elementIndex < elements.length; elementIndex++) { 
     1811                                player.skin.incompleteElements++; 
     1812                                loadImage(elements[elementIndex], componentName, player, completeHandler); 
     1813                        } 
     1814                        var settings = $(components[componentIndex]).find('setting'); 
     1815                        for (var settingIndex = 0; settingIndex < settings.length; settingIndex++) { 
     1816                                player.skin[componentName].settings[$(settings[settingIndex]).attr("name")] = $(settings[settingIndex]).attr("value"); 
     1817                        } 
     1818                        player.skin.loading = false; 
     1819                        if (player.skin.incompleteElements === 0) { 
     1820                                completeHandler(); 
     1821                        } 
     1822                } 
    18011823        } 
    18021824         
     
    18081830                var skinUrl = player.model.config.skin.substr(0, player.model.config.skin.lastIndexOf('/')); 
    18091831                $(img).error(function() { 
     1832                        $.fn.jwplayerUtils.log("img error", this.src); 
    18101833                        player.skin.incompleteElements--; 
     1834                        if ((player.skin.incompleteElements === 0) && (player.skin.loading === false)) { 
     1835                                completeHandler(); 
     1836                        } 
    18111837                }); 
    1812                 $(img).bind('load', { 
    1813                         player: player, 
    1814                         elementName: elementName, 
    1815                         component: component, 
    1816                         completeHandler: completeHandler 
    1817                 }, function(event) { 
    1818                         event.data.player.skin[event.data.component].elements[event.data.elementName] = { 
    1819                                 height: this.height, 
    1820                                 width: this.width, 
    1821                                 src: this.src 
     1838                if (elementSource.indexOf('url(\'data:image/png;base64,') === 0) { 
     1839                        img.src = elementSource; 
     1840                        player.skin[component].elements[elementName] = { 
     1841                                height: img.height, 
     1842                                width: img.width, 
     1843                                src: elementSource 
    18221844                        }; 
    1823                         event.data.player.skin.incompleteElements--; 
    1824                         if ((event.data.player.skin.incompleteElements === 0) && (event.data.player.skin.loading === false)) { 
    1825                                 event.data.completeHandler(); 
    1826                         } 
    1827                 }); 
    1828                 var src = [skinUrl, component, elementSource].join("/"); 
    1829                 //$(img).attr('style', "filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);"); 
    1830                 img.src = src; 
    1831                 img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')"; 
     1845                        player.skin.incompleteElements--; 
     1846                } else { 
     1847                        $(img).load(completeImageLoad(img, elementName, component, player, completeHandler)); 
     1848                        img.src = [skinUrl, component, elementSource].join("/"); 
     1849                } 
     1850        } 
     1851         
     1852        function completeImageLoad(img, element, component, player, completeHandler) { 
     1853                return function() { 
     1854                        player.skin[component].elements[element] = { 
     1855                                height: img.height, 
     1856                                width: img.width, 
     1857                                src: img.src 
     1858                        }; 
     1859                        player.skin.incompleteElements--; 
     1860                        if ((player.skin.incompleteElements === 0) && (player.skin.loading === false)) { 
     1861                                completeHandler(); 
     1862                        } 
     1863                }; 
    18321864        } 
    18331865         
  • trunk/html5/src/jquery.jwplayerCore.js

    r978 r982  
    2020         
    2121        function setupJWPlayer(player, step, options) { 
    22                 $.fn.jwplayerUtils.log("Starting step " + step, { 
    23                         player: player, 
    24                         options: options 
    25                 }); 
    2622                try { 
    2723                        switch (step) { 
     
    4945                                case 4: 
    5046                                        $.fn.jwplayerSkinner(player, function() { 
    51                                                 $.fn.jwplayerUtils.log("Skin loading complete", player); 
    5247                                                setupJWPlayer(player, step + 1); 
    5348                                        }); 
  • trunk/html5/src/jquery.jwplayerDisplay.js

    r978 r982  
    6363                                displays[obj.id].displayIconBackground.css("display", "block"); 
    6464                                displays[obj.id].displayIcon[0].src = player.skin.display.elements.bufferIcon.src; 
    65                                 $.fn.jwplayerUtils.log("offset", { 
    66                                         "display": "block", 
    67                                         top: (player.skin.display.elements.background.height - player.skin.display.elements.bufferIcon.height) / 2 + "px", 
    68                                         left: (player.skin.display.elements.background.width - player.skin.display.elements.bufferIcon.width) / 2 + "px" 
    69                                 }); 
    7065                                displays[obj.id].displayIcon.css({ 
    7166                                        "display": "block", 
  • trunk/html5/src/jquery.jwplayerMediaVideo.js

    r978 r982  
    8585                        player.media.state = newstate; 
    8686                        player.model.state = newstate; 
    87                         $.fn.jwplayerUtils.log($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 
    88                                 oldstate: oldstate, 
    89                                 newstate: newstate 
    90                         }); 
    9187                        player.sendEvent($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 
    9288                                oldstate: oldstate, 
     
    130126                        } 
    131127                } 
    132                  
     128                progressHandler({}, player); 
    133129        } 
    134130         
     
    138134                        bufferPercent = event.loaded / event.total * 100; 
    139135                        bufferTime = bufferPercent / 100 * player.model.duration; 
    140                 } else if (player.model.domelement[0].buffered !== undefined) { 
     136                } else if ((player.model.domelement[0].buffered !== undefined) &&(player.model.domelement[0].buffered.length > 0)) { 
    141137                        maxBufferIndex = 0; 
    142138                        if (maxBufferIndex >= 0) { 
     
    162158                        } 
    163159                        player.sendEvent($.fn.jwplayer.events.JWPLAYER_MEDIA_BUFFER, { 
    164                                 'bufferPercent': bufferPercent 
     160                                'bufferPercent': bufferPercent, 
     161                                'bufferingComplete': player.media.bufferingComplete, 
     162                                'bufferFull': player.media.bufferFull 
    165163                        }); 
    166164                } 
     
    273271                return function(path) { 
    274272                        path = $.fn.jwplayerUtils.getAbsolutePath(path); 
    275                         $.fn.jwplayerUtils.log("replay:" + player.model.domelement[0].src + ":" + path + ":" + (path == player.model.domelement[0].src)); 
    276273                        if (path == player.model.domelement[0].src && player.media.loadcount > 0) { 
    277274                                setState(player, $.fn.jwplayer.states.BUFFERING); 
  • trunk/html5/src/jquery.jwplayerSkinner.js

    r959 r982  
    1616        /** Load the skin **/ 
    1717        function load(player, completeHandler) { 
    18                 $.get(player.model.config.skin, {}, function(xml) { 
    19                         var skin = { 
    20                                 properties: {}, 
    21                                 incompleteElements: 0 
     18                $.ajax({ 
     19                        url: player.model.config.skin, 
     20                        error: function() { 
     21                                loadSkin(player, $.fn.jwplayerDefaultSkin, completeHandler); 
     22                        }, 
     23                        complete: function(xmlrequest, textStatus) { 
     24                                if (textStatus == "success") { 
     25                                        loadSkin(player, xmlrequest.responseText, completeHandler); 
     26                                } else { 
     27                                        loadSkin(player, $.fn.jwplayerDefaultSkin, completeHandler); 
     28                                } 
     29                        } 
     30                         
     31                }); 
     32        } 
     33         
     34        function loadSkin(player, xml, completeHandler) { 
     35                var skin = { 
     36                        properties: {}, 
     37                        incompleteElements: 0 
     38                }; 
     39                player.skin = skin; 
     40                var components = $('component', xml); 
     41                if (components.length === 0) { 
     42                        return; 
     43                } 
     44                for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
     45                        var componentName = $(components[componentIndex]).attr('name'); 
     46                        var component = { 
     47                                settings: {}, 
     48                                elements: {} 
    2249                        }; 
    23                         player.skin = skin; 
    24                         var components = $('component', xml); 
    25                         for (var componentIndex = 0; componentIndex < components.length; componentIndex++) { 
    26                                 var componentName = $(components[componentIndex]).attr('name'); 
    27                                 var component = { 
    28                                         settings: {}, 
    29                                         elements: {} 
    30                                 }; 
    31                                 player.skin[componentName] = component; 
    32                                 var elements = $(components[componentIndex]).find('element'); 
    33                                 player.skin.loading = true; 
    34                                 for (var elementIndex = 0; elementIndex < elements.length; elementIndex++) { 
    35                                         player.skin.incompleteElements++; 
    36                                         loadImage(elements[elementIndex], componentName, player, completeHandler); 
    37                                 } 
    38                                 var settings = $(components[componentIndex]).find('setting'); 
    39                                 for (var settingIndex = 0; settingIndex < settings.length; settingIndex++) { 
    40                                         player.skin[componentName].settings[$(settings[settingIndex]).attr("name")] = $(settings[settingIndex]).attr("value"); 
    41                                 } 
    42                                 player.skin.loading = false; 
     50                        player.skin[componentName] = component; 
     51                        var elements = $(components[componentIndex]).find('element'); 
     52                        player.skin.loading = true; 
     53                        for (var elementIndex = 0; elementIndex < elements.length; elementIndex++) { 
     54                                player.skin.incompleteElements++; 
     55                                loadImage(elements[elementIndex], componentName, player, completeHandler); 
    4356                        } 
    44                 }); 
     57                        var settings = $(components[componentIndex]).find('setting'); 
     58                        for (var settingIndex = 0; settingIndex < settings.length; settingIndex++) { 
     59                                player.skin[componentName].settings[$(settings[settingIndex]).attr("name")] = $(settings[settingIndex]).attr("value"); 
     60                        } 
     61                        player.skin.loading = false; 
     62                        if (player.skin.incompleteElements === 0) { 
     63                                completeHandler(); 
     64                        } 
     65                } 
    4566        } 
    4667         
     
    5273                var skinUrl = player.model.config.skin.substr(0, player.model.config.skin.lastIndexOf('/')); 
    5374                $(img).error(function() { 
     75                        $.fn.jwplayerUtils.log("img error", this.src); 
    5476                        player.skin.incompleteElements--; 
    55                 }); 
    56                 $(img).bind('load', { 
    57                         player: player, 
    58                         elementName: elementName, 
    59                         component: component, 
    60                         completeHandler: completeHandler 
    61                 }, function(event) { 
    62                         event.data.player.skin[event.data.component].elements[event.data.elementName] = { 
    63                                 height: this.height, 
    64                                 width: this.width, 
    65                                 src: this.src 
    66                         }; 
    67                         event.data.player.skin.incompleteElements--; 
    68                         if ((event.data.player.skin.incompleteElements === 0) && (event.data.player.skin.loading === false)) { 
    69                                 event.data.completeHandler(); 
     77                        if ((player.skin.incompleteElements === 0) && (player.skin.loading === false)) { 
     78                                completeHandler(); 
    7079                        } 
    7180                }); 
    72                 var src = [skinUrl, component, elementSource].join("/"); 
    73                 //$(img).attr('style', "filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);"); 
    74                 img.src = src; 
    75                 img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')"; 
     81                if (elementSource.indexOf('url(\'data:image/png;base64,') === 0) { 
     82                        img.src = elementSource; 
     83                        player.skin[component].elements[elementName] = { 
     84                                height: img.height, 
     85                                width: img.width, 
     86                                src: elementSource 
     87                        }; 
     88                        player.skin.incompleteElements--; 
     89                } else { 
     90                        $(img).load(completeImageLoad(img, elementName, component, player, completeHandler)); 
     91                        img.src = [skinUrl, component, elementSource].join("/"); 
     92                } 
     93        } 
     94         
     95        function completeImageLoad(img, element, component, player, completeHandler) { 
     96                return function() { 
     97                        player.skin[component].elements[element] = { 
     98                                height: img.height, 
     99                                width: img.width, 
     100                                src: img.src 
     101                        }; 
     102                        player.skin.incompleteElements--; 
     103                        if ((player.skin.incompleteElements === 0) && (player.skin.loading === false)) { 
     104                                completeHandler(); 
     105                        } 
     106                }; 
    76107        } 
    77108         
Note: See TracChangeset for help on using the changeset viewer.