Changeset 1206
- Timestamp:
- 08/12/10 19:06:46 (3 years ago)
- Location:
- trunk/js
- Files:
-
- 5 edited
-
bin-debug/jwplayer.js (modified) (10 diffs)
-
src/api/jwplayer.api.js (modified) (5 diffs)
-
src/embed/jwplayer.embed.js (modified) (3 diffs)
-
test/index.php (modified) (8 diffs)
-
test/settings.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/js/bin-debug/jwplayer.js
r1200 r1206 84 84 src: 'file', 85 85 type: 'type', 86 media: 'media' 86 media: 'media', 87 'data-jw-width': 'width', 88 'data-jw-bitrate': 'bitrate' 89 87 90 }, 88 91 video: { … … 160 163 attributes = getAttributeList('source', attributes); 161 164 var result = parseElement(domElement, attributes); 162 result.width = 0;163 result.bitrate = 0;165 result.width = result.width ? result.width : 0; 166 result.bitrate = result.bitrate ? result.bitrate : 0; 164 167 return result; 165 168 } … … 340 343 341 344 this.callInternal = function(funcName, args) { 342 if ( _player&& typeof _player[funcName] == "function") {345 if (typeof _player != "undefined" && typeof _player[funcName] == "function") { 343 346 if (args !== undefined) { 344 347 return (_player[funcName])(args); … … 383 386 getMute: function() { return this.callInternal('getMute'); }, 384 387 getPlaylist: function() { return this.callInternal('getPlaylist'); }, 385 getPlaylistItem: function(item) { return this.callInternal('getPlaylist')[item]; }, 388 getPlaylistItem: function(item) { 389 if (item == undefined) item = 0; 390 return this.getPlaylist()[item]; 391 }, 386 392 getPosition: function() { return this.callInternal('getPosition'); }, 387 393 getState: function() { return this.callInternal('getState'); }, … … 416 422 return this; 417 423 }, 418 pause: function( state) {419 if (typeof state === "undefined") {420 var state = this.getState();421 if (state == jwplayer.api.events.state.PAUSED) {422 this.callInternal("play");423 } else {424 this.callInternal("pause");425 }426 } else {427 this.callInternal("pause", state);424 pause: function() { 425 var state = this.getState(); 426 switch (state) { 427 case jwplayer.api.events.state.PLAYING: 428 case jwplayer.api.events.state.BUFFERING: 429 this.callInternal("pause"); 430 break; 431 case jwplayer.api.events.state.PAUSED: 432 this.callInternal("play"); 433 break; 428 434 } 429 435 return this; … … 477 483 } else { 478 484 // Todo: register new object 479 return new jwplayer.api.PlayerAPI(_container);485 return jwplayer.api.addPlayer(new jwplayer.api.PlayerAPI(_container)); 480 486 } 481 487 } else if (typeof identifier == 'number') { … … 495 501 }; 496 502 497 jwplayer. register = jwplayer.api.addPlayer = function(player) {503 jwplayer.api.addPlayer = function(player) { 498 504 for (var i in _players) { 499 505 if (_players[i] == player) { … … 561 567 var html5player = jwplayer.embed.embedHTML5(this.api.container, player, this.config); 562 568 this.api.setPlayer(html5player); 569 //TODO: Remove this once HTML5 player calls playerReady() 563 570 this.api.playerReady({id:this.api.container.id}); 564 571 break; … … 655 662 container.innerHTML = "<p>Embedded HTML5 player goes here</p>"; 656 663 // TODO: remove this requirement from the html5 player (sources instead of levels) 657 return new (jwplayer.html5(container)).setup(jwplayer.utils.extend({sources:options.levels, playerready:'playerReady'}, jwplayer.embed.defaults, options)); 664 var playerOptions = jwplayer.utils.extend({}, jwplayer.embed.defaults, options); 665 if (playerOptions.levels && !playerOptions.sources) playerOptions.sources = options.levels; 666 return new (jwplayer.html5(container)).setup(playerOptions); 658 667 } else { 659 668 return null; … … 696 705 jwplayer.api.PlayerAPI.prototype.setup = function(options, player) { 697 706 this.config = options; 698 jwplayer.register(this);699 707 return (new jwplayer.embed.Embedder(this)).embedPlayer(); 700 708 }; -
trunk/js/src/api/jwplayer.api.js
r1200 r1206 117 117 118 118 this.callInternal = function(funcName, args) { 119 if ( _player&& typeof _player[funcName] == "function") {119 if (typeof _player != "undefined" && typeof _player[funcName] == "function") { 120 120 if (args !== undefined) { 121 121 return (_player[funcName])(args); … … 160 160 getMute: function() { return this.callInternal('getMute'); }, 161 161 getPlaylist: function() { return this.callInternal('getPlaylist'); }, 162 getPlaylistItem: function(item) { return this.callInternal('getPlaylist')[item]; }, 162 getPlaylistItem: function(item) { 163 if (item == undefined) item = 0; 164 return this.getPlaylist()[item]; 165 }, 163 166 getPosition: function() { return this.callInternal('getPosition'); }, 164 167 getState: function() { return this.callInternal('getState'); }, … … 193 196 return this; 194 197 }, 195 pause: function( state) {196 if (typeof state === "undefined") {197 var state = this.getState();198 if (state == jwplayer.api.events.state.PAUSED) {199 this.callInternal("play");200 } else {201 this.callInternal("pause");202 }203 } else {204 this.callInternal("pause", state);198 pause: function() { 199 var state = this.getState(); 200 switch (state) { 201 case jwplayer.api.events.state.PLAYING: 202 case jwplayer.api.events.state.BUFFERING: 203 this.callInternal("pause"); 204 break; 205 case jwplayer.api.events.state.PAUSED: 206 this.callInternal("play"); 207 break; 205 208 } 206 209 return this; … … 254 257 } else { 255 258 // Todo: register new object 256 return new jwplayer.api.PlayerAPI(_container);259 return jwplayer.api.addPlayer(new jwplayer.api.PlayerAPI(_container)); 257 260 } 258 261 } else if (typeof identifier == 'number') { … … 272 275 }; 273 276 274 jwplayer. register = jwplayer.api.addPlayer = function(player) {277 jwplayer.api.addPlayer = function(player) { 275 278 for (var i in _players) { 276 279 if (_players[i] == player) { -
trunk/js/src/embed/jwplayer.embed.js
r1200 r1206 37 37 var html5player = jwplayer.embed.embedHTML5(this.api.container, player, this.config); 38 38 this.api.setPlayer(html5player); 39 //TODO: Remove this once HTML5 player calls playerReady() 39 40 this.api.playerReady({id:this.api.container.id}); 40 41 break; … … 131 132 container.innerHTML = "<p>Embedded HTML5 player goes here</p>"; 132 133 // TODO: remove this requirement from the html5 player (sources instead of levels) 133 return new (jwplayer.html5(container)).setup(jwplayer.utils.extend({sources:options.levels, playerready:'playerReady'}, jwplayer.embed.defaults, options)); 134 var playerOptions = jwplayer.utils.extend({}, jwplayer.embed.defaults, options); 135 if (playerOptions.levels && !playerOptions.sources) playerOptions.sources = options.levels; 136 return new (jwplayer.html5(container)).setup(playerOptions); 134 137 } else { 135 138 return null; … … 172 175 jwplayer.api.PlayerAPI.prototype.setup = function(options, player) { 173 176 this.config = options; 174 jwplayer.register(this);175 177 return (new jwplayer.embed.Embedder(this)).embedPlayer(); 176 178 }; -
trunk/js/test/index.php
r1197 r1206 7 7 <script type="text/javascript" src="settings.js"></script> 8 8 <script type="text/javascript" src="../bin-debug/jwplayer.js"></script> 9 <script type="text/javascript" src="../../html5/jwplayer.html5.js"></script> 9 10 <script type="text/javascript"> 10 11 … … 237 238 } 238 239 240 function registerobjectembed() { 241 player = jwplayer('preview'); 242 player.setPlayer(document.getElementById('preview')); 243 } 239 244 240 245 function swfobjectembed(){ … … 244 249 $('#preview').css('height',vrs['height']); 245 250 $('#preview').html('<div id="container"></div>'); 246 var player = "";251 var playerLocation = ""; 247 252 var players = eval($('#player').val()); 248 253 for (var plr in players){ 249 254 if (players[plr]['type'] == 'flash'){ 250 player = players[plr]['src'];255 playerLocation = players[plr]['src']; 251 256 } 252 257 } 253 258 swfobject.embedSWF( 254 player ,259 playerLocation, 255 260 'container', 256 261 vrs['width'], … … 260 265 vrs, 261 266 {allowfullscreen:'true',allowscriptaccess:'always'}, 262 {id:' player',name:'player'}267 {id:'newPlayer',name:'newPlayer'} 263 268 ); 264 269 var lnk = 'http://developer.longtailvideo.com/trac/testing/'; 265 270 $("#permalink").val(lnk+'?'+$.param(variables)); 271 player = jwplayer('newPlayer'); 272 player.setPlayer(document.getElementById('newPlayer')); 266 273 } 267 274 … … 279 286 } 280 287 281 jwplayer('preview').setup($.extend(vrs, {288 player = jwplayer('preview').setup($.extend(vrs, { 282 289 "players": eval($('#player').val()), 283 290 "events": events … … 307 314 /** Reference to the player **/ 308 315 var player; 309 /** When the player is ready and the API forms can be shown, display them. **/ 310 function playerReady(obj) { 311 player = document.getElementById(obj['id']); 312 }; 316 313 317 /** Get a variable from the player. **/ 314 318 function getVariable(evt) { … … 339 343 } 340 344 } 341 player[typ](dat); 345 if (dat.toString == "") { 346 player[typ](); 347 } else { 348 player[typ](dat); 349 } 342 350 }; 343 351 /** Set a listener to the player. **/ … … 364 372 function alertValue(obj) { 365 373 var txt = ''; 366 for (itm in obj) { 367 if(typeof(obj[itm]) == 'object') { 368 txt += itm+':\n'; 369 for (ent in obj[itm]) { 370 txt += ' '+ent+': '+obj[itm][ent]+'\n'; 371 } 372 } else { 373 txt += itm+': '+obj[itm]+'\n'; 374 } 375 } 376 alert(txt); 374 if (typeof obj == "object") { 375 for (itm in obj) { 376 if(typeof(obj[itm]) == 'object') { 377 txt += itm+':\n'; 378 for (ent in obj[itm]) { 379 txt += ' '+ent+': '+obj[itm][ent]+'\n'; 380 } 381 } else { 382 txt += itm+': '+obj[itm]+'\n'; 383 } 384 } 385 alert(txt); 386 } else { 387 alert(obj) 388 } 377 389 }; 378 390 -
trunk/js/test/settings.js
r1197 r1206 3 3 "html":{ 4 4 "default": "<div id='preview'><p>Testing is simple: choose an example, change the flashvars and see if it works.</p></div>", 5 "object": "<embed id='preview' name='preview' src='players/player-5. 2.swf' width='470' height='320' bgcolor='#000000' allowscriptaccess='always' allowfullscreen='true' flashvars='file=http://content.longtailvideo.com/videos/flvplayer.flv' />",6 "embed": "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='470' height='320' id='preview' name='preview'><param name='movie' value='players/player-5. 2.swf'><param name='allowfullscreen' value='true'> <param name='allowscriptaccess' value='always'> <param name='wmode' value='transparent'> <param name='flashvars' value='file=http://content.longtailvideo.com/videos/flvplayer.flv'>",7 "video": "<video id='preview' height='270' poster='files/bunny.jpg' src='files/bunny.mp4' width='480'></video>"5 "object": "<embed id='preview' name='preview' src='players/player-5.3.swf' width='470' height='320' bgcolor='#000000' allowscriptaccess='always' allowfullscreen='true' flashvars='file=http://content.longtailvideo.com/videos/flvplayer.flv' />", 6 "embed": "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='470' height='320' id='preview' name='preview'><param name='movie' value='players/player-5.3.swf'><param name='allowfullscreen' value='true'> <param name='allowscriptaccess' value='always'> <param name='wmode' value='transparent'> <param name='flashvars' value='file=http://content.longtailvideo.com/videos/flvplayer.flv'>", 7 "video": "<video id='preview' height='270' poster='files/bunny.jpg' width='480'><source src='files/bunny.mp4'/></video>" 8 8 }, 9 9 /** The embed script to use **/ 10 10 "script":{ 11 "none":" (function() {})",11 "none":"registerobjectembed", 12 12 "swfobject":"swfobjectembed", 13 13 "jwembed":"jwplayersetup" … … 15 15 /** Player versions to test. **/ 16 16 "players": { 17 "flash-5.3":[{"type":"flash","src":"players/player-5.3.swf"}], 17 18 "flash-5.2":[{"type":"flash","src":"players/player-5.2.swf"}], 18 19 "flash-5.1":[{"type":"flash","src":"players/player-5.1.swf"}],
Note: See TracChangeset
for help on using the changeset viewer.
