Changeset 982
- Timestamp:
- 05/03/10 11:22:43 (3 years ago)
- Location:
- trunk/html5
- Files:
-
- 3 added
- 6 edited
-
assets/five/five-min.xml (added)
-
build/skin-builder.py (added)
-
index.html (modified) (1 diff)
-
jquery.jwplayer.js (modified) (11 diffs)
-
src/jquery.jwplayerCore.js (modified) (2 diffs)
-
src/jquery.jwplayerDefaultSkin.js (added)
-
src/jquery.jwplayerDisplay.js (modified) (1 diff)
-
src/jquery.jwplayerMediaVideo.js (modified) (5 diffs)
-
src/jquery.jwplayerSkinner.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/html5/index.html
r975 r982 35 35 $('#player1').jwplayer({ 36 36 skin:'assets/five/five.xml', 37 repeat: 'list' 37 repeat: 'list', 38 debug: 'CONSOLE' 38 39 }); 39 40 </script> -
trunk/html5/jquery.jwplayer.js
r978 r982 736 736 737 737 function setupJWPlayer(player, step, options) { 738 $.fn.jwplayerUtils.log("Starting step " + step, {739 player: player,740 options: options741 });742 738 try { 743 739 switch (step) { … … 765 761 case 4: 766 762 $.fn.jwplayerSkinner(player, function() { 767 $.fn.jwplayerUtils.log("Skin loading complete", player);768 763 setupJWPlayer(player, step + 1); 769 764 }); … … 925 920 })(jQuery); 926 921 /** 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 /** 927 936 * JW Player view component 928 937 * … … 988 997 displays[obj.id].displayIconBackground.css("display", "block"); 989 998 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 });995 999 displays[obj.id].displayIcon.css({ 996 1000 "display": "block", … … 1356 1360 player.media.state = newstate; 1357 1361 player.model.state = newstate; 1358 $.fn.jwplayerUtils.log($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, {1359 oldstate: oldstate,1360 newstate: newstate1361 });1362 1362 player.sendEvent($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 1363 1363 oldstate: oldstate, … … 1401 1401 } 1402 1402 } 1403 1403 progressHandler({}, player); 1404 1404 } 1405 1405 … … 1409 1409 bufferPercent = event.loaded / event.total * 100; 1410 1410 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)) { 1412 1412 maxBufferIndex = 0; 1413 1413 if (maxBufferIndex >= 0) { … … 1433 1433 } 1434 1434 player.sendEvent($.fn.jwplayer.events.JWPLAYER_MEDIA_BUFFER, { 1435 'bufferPercent': bufferPercent 1435 'bufferPercent': bufferPercent, 1436 'bufferingComplete': player.media.bufferingComplete, 1437 'bufferFull': player.media.bufferFull 1436 1438 }); 1437 1439 } … … 1544 1546 return function(path) { 1545 1547 path = $.fn.jwplayerUtils.getAbsolutePath(path); 1546 $.fn.jwplayerUtils.log("replay:" + player.model.domelement[0].src + ":" + path + ":" + (path == player.model.domelement[0].src));1547 1548 if (path == player.model.domelement[0].src && player.media.loadcount > 0) { 1548 1549 setState(player, $.fn.jwplayer.states.BUFFERING); … … 1772 1773 /** Load the skin **/ 1773 1774 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: {} 1778 1806 }; 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 } 1801 1823 } 1802 1824 … … 1808 1830 var skinUrl = player.model.config.skin.substr(0, player.model.config.skin.lastIndexOf('/')); 1809 1831 $(img).error(function() { 1832 $.fn.jwplayerUtils.log("img error", this.src); 1810 1833 player.skin.incompleteElements--; 1834 if ((player.skin.incompleteElements === 0) && (player.skin.loading === false)) { 1835 completeHandler(); 1836 } 1811 1837 }); 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 1822 1844 }; 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 }; 1832 1864 } 1833 1865 -
trunk/html5/src/jquery.jwplayerCore.js
r978 r982 20 20 21 21 function setupJWPlayer(player, step, options) { 22 $.fn.jwplayerUtils.log("Starting step " + step, {23 player: player,24 options: options25 });26 22 try { 27 23 switch (step) { … … 49 45 case 4: 50 46 $.fn.jwplayerSkinner(player, function() { 51 $.fn.jwplayerUtils.log("Skin loading complete", player);52 47 setupJWPlayer(player, step + 1); 53 48 }); -
trunk/html5/src/jquery.jwplayerDisplay.js
r978 r982 63 63 displays[obj.id].displayIconBackground.css("display", "block"); 64 64 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 });70 65 displays[obj.id].displayIcon.css({ 71 66 "display": "block", -
trunk/html5/src/jquery.jwplayerMediaVideo.js
r978 r982 85 85 player.media.state = newstate; 86 86 player.model.state = newstate; 87 $.fn.jwplayerUtils.log($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, {88 oldstate: oldstate,89 newstate: newstate90 });91 87 player.sendEvent($.fn.jwplayer.events.JWPLAYER_PLAYER_STATE, { 92 88 oldstate: oldstate, … … 130 126 } 131 127 } 132 128 progressHandler({}, player); 133 129 } 134 130 … … 138 134 bufferPercent = event.loaded / event.total * 100; 139 135 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)) { 141 137 maxBufferIndex = 0; 142 138 if (maxBufferIndex >= 0) { … … 162 158 } 163 159 player.sendEvent($.fn.jwplayer.events.JWPLAYER_MEDIA_BUFFER, { 164 'bufferPercent': bufferPercent 160 'bufferPercent': bufferPercent, 161 'bufferingComplete': player.media.bufferingComplete, 162 'bufferFull': player.media.bufferFull 165 163 }); 166 164 } … … 273 271 return function(path) { 274 272 path = $.fn.jwplayerUtils.getAbsolutePath(path); 275 $.fn.jwplayerUtils.log("replay:" + player.model.domelement[0].src + ":" + path + ":" + (path == player.model.domelement[0].src));276 273 if (path == player.model.domelement[0].src && player.media.loadcount > 0) { 277 274 setState(player, $.fn.jwplayer.states.BUFFERING); -
trunk/html5/src/jquery.jwplayerSkinner.js
r959 r982 16 16 /** Load the skin **/ 17 17 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: {} 22 49 }; 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); 43 56 } 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 } 45 66 } 46 67 … … 52 73 var skinUrl = player.model.config.skin.substr(0, player.model.config.skin.lastIndexOf('/')); 53 74 $(img).error(function() { 75 $.fn.jwplayerUtils.log("img error", this.src); 54 76 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(); 70 79 } 71 80 }); 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 }; 76 107 } 77 108
Note: See TracChangeset
for help on using the changeset viewer.
