romo-av 0.1.6 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/assets/js/romo-av/dropdown_video.js +154 -176
- data/assets/js/romo-av/modal_video.js +160 -182
- data/assets/js/romo-av/video.js +172 -181
- data/lib/romo-av/version.rb +1 -1
- data/romo-av.gemspec +1 -1
- metadata +3 -3
data/assets/js/romo-av/video.js
CHANGED
@@ -1,32 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
});
|
5
|
-
}
|
6
|
-
|
7
|
-
var RomoVideo = function(element) {
|
8
|
-
this.elem = $(element);
|
9
|
-
this.videoObj = this.elem[0];
|
10
|
-
|
11
|
-
this._bindFullscreen();
|
12
|
-
this._bindVideo();
|
1
|
+
var RomoVideo = RomoComponent(function(elem) {
|
2
|
+
this.elem = elem;
|
3
|
+
this.videoObj = this.elem;
|
13
4
|
|
14
5
|
this.doInit();
|
15
|
-
this.
|
16
|
-
|
17
|
-
this.durationTime = undefined;
|
18
|
-
this.durationFrames = undefined;
|
19
|
-
this.elem.on('loadedmetadata', $.proxy(function(e) {
|
20
|
-
this.durationTime = this.getDurationTime();
|
21
|
-
this.durationFrames = this.getDurationFrames();
|
22
|
-
}, this));
|
6
|
+
this._bindElem()
|
23
7
|
|
24
|
-
this.elem
|
25
|
-
}
|
26
|
-
|
27
|
-
RomoVideo.prototype.doInit = function() {
|
28
|
-
// override as needed
|
29
|
-
}
|
8
|
+
Romo.trigger(this.elem, 'romoVideo:ready', [this.videoObj, this]);
|
9
|
+
});
|
30
10
|
|
31
11
|
// Playback methods
|
32
12
|
|
@@ -76,33 +56,33 @@ RomoVideo.prototype.doModPlaybackByPercent = function(percent) {
|
|
76
56
|
|
77
57
|
RomoVideo.prototype.doMute = function() {
|
78
58
|
this.videoObj.muted = true;
|
79
|
-
this.elem
|
59
|
+
Romo.trigger(this.elem, 'romoVideo:volumechange', [this.videoObj, this]);
|
80
60
|
}
|
81
61
|
|
82
62
|
RomoVideo.prototype.doUnmute = function() {
|
83
63
|
this.videoObj.muted = false;
|
84
|
-
this.elem
|
64
|
+
Romo.trigger(this.elem, 'romoVideo:volumechange', [this.videoObj, this]);
|
85
65
|
}
|
86
66
|
|
87
67
|
RomoVideo.prototype.doToggleMute = function() {
|
88
68
|
this.videoObj.muted = !this.videoObj.muted;
|
89
|
-
this.elem
|
69
|
+
Romo.trigger(this.elem, 'romoVideo:volumechange', [this.videoObj, this]);
|
90
70
|
}
|
91
71
|
|
92
72
|
RomoVideo.prototype.getLoop = function() {
|
93
|
-
return this.
|
73
|
+
return this.videoObj.loop;
|
94
74
|
}
|
95
75
|
|
96
76
|
RomoVideo.prototype.doLoop = function() {
|
97
|
-
this.
|
98
|
-
this.elem
|
99
|
-
this.elem
|
77
|
+
this.videoObj.loop = true;
|
78
|
+
Romo.trigger(this.elem, 'romoVideo:loop', [this.videoObj, this]);
|
79
|
+
Romo.trigger(this.elem, 'romoVideo:loopChange', [true, this.videoObj, this]);
|
100
80
|
}
|
101
81
|
|
102
82
|
RomoVideo.prototype.doNoLoop = function() {
|
103
|
-
this.
|
104
|
-
this.elem
|
105
|
-
this.elem
|
83
|
+
this.videoObj.loop = false;
|
84
|
+
Romo.trigger(this.elem, 'romoVideo:noloop', [this.videoObj, this]);
|
85
|
+
Romo.trigger(this.elem, 'romoVideo:loopChange', [false, this.videoObj, this]);
|
106
86
|
}
|
107
87
|
|
108
88
|
RomoVideo.prototype.doToggleLoop = function() {
|
@@ -304,240 +284,237 @@ RomoVideo.prototype.getVideoFormattedTime = function(seconds) {
|
|
304
284
|
|
305
285
|
// private
|
306
286
|
|
307
|
-
RomoVideo.prototype.
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
}
|
315
|
-
} else if (newSecondNum < 0) {
|
316
|
-
if (this.elem.prop('loop') === true){
|
317
|
-
this.videoObj.currentTime = (durationTime - (0 - newSecondNum));
|
318
|
-
} else {
|
319
|
-
this.videoObj.currentTime = 0;
|
320
|
-
}
|
321
|
-
} else {
|
322
|
-
this.videoObj.currentTime = newSecondNum;
|
323
|
-
}
|
324
|
-
}
|
325
|
-
|
326
|
-
RomoVideo.prototype._frameNumToSecondNum = function(frameNum) {
|
327
|
-
return frameNum / this.fps;
|
328
|
-
}
|
329
|
-
|
330
|
-
RomoVideo.prototype._percentToSecondNum = function(percent) {
|
331
|
-
return (percent / 100) * this.getDurationTime();
|
332
|
-
}
|
333
|
-
|
334
|
-
RomoVideo.prototype._setVolume = function(value) {
|
335
|
-
if (value > 1) {
|
336
|
-
this.videoObj.volume = 1;
|
337
|
-
} else if (value < 0) {
|
338
|
-
this.videoObj.volume = 0;
|
339
|
-
} else {
|
340
|
-
this.videoObj.volume = value;
|
341
|
-
}
|
342
|
-
this.doUnmute();
|
343
|
-
}
|
344
|
-
|
345
|
-
RomoVideo.prototype._loadState = function() {
|
346
|
-
this.fps = this.elem.data('romo-video-fps');
|
347
|
-
if (this.fps && this.fps > 0) {
|
348
|
-
this.fpsEnabled = true;
|
349
|
-
} else {
|
350
|
-
this.fpsEnabled = false;
|
351
|
-
}
|
352
|
-
this.showMs = this.elem.data('romo-video-show-ms');
|
353
|
-
}
|
354
|
-
|
355
|
-
RomoVideo.prototype._bindFullscreen = function() {
|
356
|
-
var fullscreenElem = this.elem.closest(this.elem.data('romo-video-fullscreen-elem'));
|
357
|
-
if (fullscreenElem[0] !== undefined) {
|
358
|
-
this.fullscreenElem = fullscreenElem;
|
359
|
-
} else {
|
360
|
-
this.fullscreenElem = this.elem;
|
361
|
-
}
|
362
|
-
|
363
|
-
this._browserRequestFullscreen = this._getBrowserRequestFullscreen(this.fullscreenElem);
|
364
|
-
this._browserExitFullscreen = this._getBrowserExitFullscreen();
|
365
|
-
|
366
|
-
$(document).on('fullscreenchange', $.proxy(this._onDocumentFullscreenChange, this));
|
367
|
-
$(document).on('mozfullscreenchange', $.proxy(this._onDocumentFullscreenChange, this));
|
368
|
-
$(document).on('msfullscreenchange', $.proxy(this._onDocumentFullscreenChange, this));
|
369
|
-
$(document).on('webkitfullscreenchange', $.proxy(this._onDocumentFullscreenChange, this));
|
370
|
-
}
|
287
|
+
RomoVideo.prototype._bindElem = function() {
|
288
|
+
this.durationTime = undefined;
|
289
|
+
this.durationFrames = undefined;
|
290
|
+
Romo.on(this.elem, 'loadedmetadata', Romo.proxy(function(e) {
|
291
|
+
this.durationTime = this.getDurationTime();
|
292
|
+
this.durationFrames = this.getDurationFrames();
|
293
|
+
}, this));
|
371
294
|
|
372
|
-
|
295
|
+
this._bindFullscreen();
|
373
296
|
this._bindVideoElemEvents();
|
374
297
|
this._bindVideoTriggerEvents();
|
298
|
+
this._loadState();
|
375
299
|
}
|
376
300
|
|
377
301
|
RomoVideo.prototype._bindVideoElemEvents = function() {
|
378
302
|
// playback events
|
379
303
|
|
380
|
-
this.elem
|
381
|
-
this.elem
|
304
|
+
Romo.on(this.elem, 'play', Romo.proxy(function(e) {
|
305
|
+
Romo.trigger(this.elem, 'romoVideo:play', [this.videoObj, this]);
|
382
306
|
}, this));
|
383
|
-
this.elem
|
384
|
-
this.elem
|
307
|
+
Romo.on(this.elem, 'pause', Romo.proxy(function(e) {
|
308
|
+
Romo.trigger(this.elem, 'romoVideo:pause', [this.videoObj, this]);
|
385
309
|
}, this));
|
386
310
|
|
387
311
|
// state events
|
388
312
|
|
389
|
-
this.elem
|
390
|
-
this.elem
|
313
|
+
Romo.on(this.elem, 'playing', Romo.proxy(function(e) {
|
314
|
+
Romo.trigger(this.elem, 'romoVideo:playing', [this.videoObj, this]);
|
391
315
|
}, this));
|
392
|
-
this.elem
|
393
|
-
this.elem
|
316
|
+
Romo.on(this.elem, 'waiting', Romo.proxy(function(e) {
|
317
|
+
Romo.trigger(this.elem, 'romoVideo:waiting', [this.videoObj, this]);
|
394
318
|
}, this));
|
395
|
-
this.elem
|
396
|
-
this.elem
|
319
|
+
Romo.on(this.elem, 'ended', Romo.proxy(function(e) {
|
320
|
+
Romo.trigger(this.elem, 'romoVideo:ended', [this.videoObj, this]);
|
397
321
|
}, this));
|
398
|
-
this.elem
|
399
|
-
this.elem
|
322
|
+
Romo.on(this.elem, 'emptied', Romo.proxy(function(e) {
|
323
|
+
Romo.trigger(this.elem, 'romoVideo:emptied', [this.videoObj, this]);
|
400
324
|
}, this));
|
401
|
-
this.elem
|
402
|
-
this.elem
|
325
|
+
Romo.on(this.elem, 'error', Romo.proxy(function(e) {
|
326
|
+
Romo.trigger(this.elem, 'romoVideo:error', [this.videoObj, this]);
|
403
327
|
}, this));
|
404
|
-
this.elem
|
405
|
-
this.elem
|
328
|
+
Romo.on(this.elem, 'stalled', Romo.proxy(function(e) {
|
329
|
+
Romo.trigger(this.elem, 'romoVideo:stalled', [this.videoObj, this]);
|
406
330
|
}, this));
|
407
|
-
this.elem
|
408
|
-
this.elem
|
331
|
+
Romo.on(this.elem, 'suspend', Romo.proxy(function(e) {
|
332
|
+
Romo.trigger(this.elem, 'romoVideo:suspend', [this.videoObj, this]);
|
409
333
|
}, this));
|
410
334
|
|
411
335
|
// status events
|
412
336
|
|
413
|
-
this.elem
|
414
|
-
this.elem
|
337
|
+
Romo.on(this.elem, 'progress', Romo.proxy(function(e) {
|
338
|
+
Romo.trigger(this.elem, 'romoVideo:progress', [this.videoObj, this]);
|
415
339
|
}, this));
|
416
|
-
this.elem
|
417
|
-
this.elem
|
340
|
+
Romo.on(this.elem, 'timeupdate', Romo.proxy(function(e) {
|
341
|
+
Romo.trigger(this.elem, 'romoVideo:timeupdate', [this.videoObj, this]);
|
418
342
|
}, this));
|
419
343
|
|
420
344
|
// settings events
|
421
345
|
|
422
|
-
this.elem
|
423
|
-
this.elem
|
346
|
+
Romo.on(this.elem, 'volumechange', Romo.proxy(function(e) {
|
347
|
+
Romo.trigger(this.elem, 'romoVideo:volumechange', [this.videoObj, this]);
|
424
348
|
}, this));
|
425
|
-
this.elem
|
426
|
-
this.elem
|
349
|
+
Romo.on(this.elem, 'durationchange', Romo.proxy(function(e) {
|
350
|
+
Romo.trigger(this.elem, 'romoVideo:durationchange', [this.videoObj, this]);
|
427
351
|
}, this));
|
428
|
-
this.elem
|
429
|
-
this.elem
|
352
|
+
Romo.on(this.elem, 'ratechange', Romo.proxy(function(e) {
|
353
|
+
Romo.trigger(this.elem, 'romoVideo:ratechange', [this.videoObj, this]);
|
430
354
|
}, this));
|
431
355
|
|
432
356
|
// load events
|
433
357
|
|
434
|
-
this.elem
|
435
|
-
this.elem
|
358
|
+
Romo.on(this.elem, 'loadstart', Romo.proxy(function(e) {
|
359
|
+
Romo.trigger(this.elem, 'romoVideo:loadstart', [this.videoObj, this]);
|
436
360
|
}, this));
|
437
|
-
this.elem
|
438
|
-
this.elem
|
361
|
+
Romo.on(this.elem, 'loadedmetadata', Romo.proxy(function(e) {
|
362
|
+
Romo.trigger(this.elem, 'romoVideo:loadedmetadata', [this.videoObj, this]);
|
439
363
|
}, this));
|
440
|
-
this.elem
|
441
|
-
this.elem
|
364
|
+
Romo.on(this.elem, 'loadeddata', Romo.proxy(function(e) {
|
365
|
+
Romo.trigger(this.elem, 'romoVideo:loadeddata', [this.videoObj, this]);
|
442
366
|
}, this));
|
443
|
-
this.elem
|
444
|
-
this.elem
|
367
|
+
Romo.on(this.elem, 'canplay', Romo.proxy(function(e) {
|
368
|
+
Romo.trigger(this.elem, 'romoVideo:canplay', [this.videoObj, this]);
|
445
369
|
}, this));
|
446
|
-
this.elem
|
447
|
-
this.elem
|
370
|
+
Romo.on(this.elem, 'canplaythrough', Romo.proxy(function(e) {
|
371
|
+
Romo.trigger(this.elem, 'romoVideo:canplaythrough', [this.videoObj, this]);
|
448
372
|
}, this));
|
449
373
|
}
|
450
374
|
|
451
375
|
RomoVideo.prototype._bindVideoTriggerEvents = function() {
|
452
376
|
// playback triggers
|
453
377
|
|
454
|
-
this.elem
|
378
|
+
Romo.on(this.elem, 'romoVideo:triggerPlay', Romo.proxy(function(e) {
|
455
379
|
this.doPlay(); return false;
|
456
380
|
}, this));
|
457
|
-
this.elem
|
381
|
+
Romo.on(this.elem, 'romoVideo:triggerPause', Romo.proxy(function(e) {
|
458
382
|
this.doPause(); return false;
|
459
383
|
}, this));
|
460
|
-
this.elem
|
384
|
+
Romo.on(this.elem, 'romoVideo:triggerTogglePlay', Romo.proxy(function(e) {
|
461
385
|
this.doTogglePlay(); return false;
|
462
386
|
}, this));
|
463
|
-
this.elem
|
387
|
+
Romo.on(this.elem, 'romoVideo:triggerSetPlaybackToTime', Romo.proxy(function(e, secondNum) {
|
464
388
|
this.doSetPlaybackToTime(secondNum); return false;
|
465
389
|
}, this));
|
466
|
-
this.elem
|
390
|
+
Romo.on(this.elem, 'romoVideo:triggerSetPlaybackToFrame', Romo.proxy(function(e, frameNum) {
|
467
391
|
this.doSetPlaybackToFrame(frameNum); return false;
|
468
392
|
}, this));
|
469
|
-
this.elem
|
393
|
+
Romo.on(this.elem, 'romoVideo:triggerSetPlaybackToPercent', Romo.proxy(function(e, percent) {
|
470
394
|
this.doSetPlaybackToPercent(percent); return false;
|
471
395
|
}, this));
|
472
|
-
this.elem
|
396
|
+
Romo.on(this.elem, 'romoVideo:triggerModPlaybackByTime', Romo.proxy(function(e, secondsCount) {
|
473
397
|
this.doModPlaybackByTime(secondsCount); return false;
|
474
398
|
}, this));
|
475
|
-
this.elem
|
399
|
+
Romo.on(this.elem, 'romoVideo:triggerModPlaybackByFrames', Romo.proxy(function(e, frameCount) {
|
476
400
|
this.doModPlaybackByFrames(frameCount); return false;
|
477
401
|
}, this));
|
478
|
-
this.elem
|
402
|
+
Romo.on(this.elem, 'romoVideo:triggerModPlaybackByPercent', Romo.proxy(function(e, percent) {
|
479
403
|
this.doModPlaybackByPercent(percent); return false;
|
480
404
|
}, this));
|
481
405
|
|
482
406
|
// settings triggers
|
483
407
|
|
484
|
-
this.elem
|
408
|
+
Romo.on(this.elem, 'romoVideo:triggerMute', Romo.proxy(function(e) {
|
485
409
|
this.doMute(); return false;
|
486
410
|
}, this));
|
487
|
-
this.elem
|
411
|
+
Romo.on(this.elem, 'romoVideo:triggerUnmute', Romo.proxy(function(e) {
|
488
412
|
this.doUnmute(); return false;
|
489
413
|
}, this));
|
490
|
-
this.elem
|
414
|
+
Romo.on(this.elem, 'romoVideo:triggerToggleMute', Romo.proxy(function(e) {
|
491
415
|
this.doToggleMute(); return false;
|
492
416
|
}, this));
|
493
|
-
this.elem
|
417
|
+
Romo.on(this.elem, 'romoVideo:triggerSetVolumeToPercent', Romo.proxy(function(e, percent) {
|
494
418
|
this.doSetVolumeToPercent(percent); return false;
|
495
419
|
}, this));
|
496
|
-
this.elem
|
420
|
+
Romo.on(this.elem, 'romoVideo:triggerModVolumeByPercent', Romo.proxy(function(e, percent) {
|
497
421
|
this.doModVolumeByPercent(percent); return false;
|
498
422
|
}, this));
|
499
|
-
this.elem
|
423
|
+
Romo.on(this.elem, 'romoVideo:triggerSetPlaybackRate', Romo.proxy(function(e, rate) {
|
500
424
|
this.doSetPlaybackToRate(rate); return false;
|
501
425
|
}, this));
|
502
|
-
this.elem
|
426
|
+
Romo.on(this.elem, 'romoVideo:triggerModPlaybackRate', Romo.proxy(function(e, rate) {
|
503
427
|
this.doModPlaybackByRate(rate); return false;
|
504
428
|
}, this));
|
505
429
|
|
506
430
|
// fullscreen triggers
|
507
431
|
|
508
|
-
this.elem
|
432
|
+
Romo.on(this.elem, 'romoVideo:triggerEnterFullscreen', Romo.proxy(function(e) {
|
509
433
|
this.doEnterFullscreen(); return false;
|
510
434
|
}, this));
|
511
|
-
this.elem
|
435
|
+
Romo.on(this.elem, 'romoVideo:triggerExitFullscreen', Romo.proxy(function(e) {
|
512
436
|
this.doExitFullscreen(); return false;
|
513
437
|
}, this));
|
514
|
-
this.elem
|
438
|
+
Romo.on(this.elem, 'romoVideo:triggerToggleFullscreen', Romo.proxy(function(e) {
|
515
439
|
this.doToggleFullscreen(); return false;
|
516
440
|
}, this));
|
517
441
|
|
518
442
|
// load triggers
|
519
443
|
|
520
|
-
this.elem
|
444
|
+
Romo.on(this.elem, 'romoVideo:triggerLoad', Romo.proxy(function(e) {
|
521
445
|
this.doLoad(); return false;
|
522
446
|
}, this));
|
523
|
-
this.elem
|
447
|
+
Romo.on(this.elem, 'romoVideo:triggerModSource', Romo.proxy(function(e, source) {
|
524
448
|
this.doModSource(source); return false;
|
525
449
|
}, this));
|
526
450
|
|
527
451
|
}
|
528
452
|
|
529
|
-
RomoVideo.prototype.
|
530
|
-
|
531
|
-
|
532
|
-
this.
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
453
|
+
RomoVideo.prototype._bindFullscreen = function() {
|
454
|
+
var fullscreenElem = Romo.closest(this.elem, Romo.data(this.elem, 'romo-video-fullscreen-elem'));
|
455
|
+
if (fullscreenElem !== undefined) {
|
456
|
+
this.fullscreenElem = fullscreenElem;
|
457
|
+
} else {
|
458
|
+
this.fullscreenElem = this.elem;
|
459
|
+
}
|
460
|
+
|
461
|
+
this._browserRequestFullscreen = this._getBrowserRequestFullscreen(this.fullscreenElem);
|
462
|
+
this._browserExitFullscreen = this._getBrowserExitFullscreen();
|
463
|
+
|
464
|
+
Romo.on(document, 'fullscreenchange', Romo.proxy(this._onDocumentFullscreenChange, this));
|
465
|
+
Romo.on(document, 'mozfullscreenchange', Romo.proxy(this._onDocumentFullscreenChange, this));
|
466
|
+
Romo.on(document, 'msfullscreenchange', Romo.proxy(this._onDocumentFullscreenChange, this));
|
467
|
+
Romo.on(document, 'webkitfullscreenchange', Romo.proxy(this._onDocumentFullscreenChange, this));
|
468
|
+
}
|
469
|
+
|
470
|
+
RomoVideo.prototype._loadState = function() {
|
471
|
+
this.fps = Romo.data(this.elem, 'romo-video-fps');
|
472
|
+
if (this.fps && this.fps > 0) {
|
473
|
+
this.fpsEnabled = true;
|
474
|
+
} else {
|
475
|
+
this.fpsEnabled = false;
|
476
|
+
}
|
477
|
+
this.showMs = Romo.data(this.elem, 'romo-video-show-ms');
|
478
|
+
}
|
479
|
+
|
480
|
+
RomoVideo.prototype._setPlayback = function(newSecondNum) {
|
481
|
+
var durationTime = this.getDurationTime();
|
482
|
+
if (newSecondNum > durationTime) {
|
483
|
+
if (this.getLoop() === true){
|
484
|
+
this.videoObj.currentTime = newSecondNum - durationTime;
|
485
|
+
} else {
|
486
|
+
this.videoObj.currentTime = durationTime;
|
487
|
+
}
|
488
|
+
} else if (newSecondNum < 0) {
|
489
|
+
if (this.getLoop() === true){
|
490
|
+
this.videoObj.currentTime = (durationTime - (0 - newSecondNum));
|
491
|
+
} else {
|
492
|
+
this.videoObj.currentTime = 0;
|
493
|
+
}
|
494
|
+
} else {
|
495
|
+
this.videoObj.currentTime = newSecondNum;
|
538
496
|
}
|
539
497
|
}
|
540
498
|
|
499
|
+
RomoVideo.prototype._frameNumToSecondNum = function(frameNum) {
|
500
|
+
return frameNum / this.fps;
|
501
|
+
}
|
502
|
+
|
503
|
+
RomoVideo.prototype._percentToSecondNum = function(percent) {
|
504
|
+
return (percent / 100) * this.getDurationTime();
|
505
|
+
}
|
506
|
+
|
507
|
+
RomoVideo.prototype._setVolume = function(value) {
|
508
|
+
if (value > 1) {
|
509
|
+
this.videoObj.volume = 1;
|
510
|
+
} else if (value < 0) {
|
511
|
+
this.videoObj.volume = 0;
|
512
|
+
} else {
|
513
|
+
this.videoObj.volume = value;
|
514
|
+
}
|
515
|
+
this.doUnmute();
|
516
|
+
}
|
517
|
+
|
541
518
|
RomoVideo.prototype._getCurrentFullscreenElem = function() {
|
542
519
|
return document.fullscreenElement ||
|
543
520
|
document.mozFullScreenElement ||
|
@@ -547,7 +524,7 @@ RomoVideo.prototype._getCurrentFullscreenElem = function() {
|
|
547
524
|
|
548
525
|
RomoVideo.prototype._requestFullscreen = function() {
|
549
526
|
if (this._canFullscreen()) {
|
550
|
-
this._browserRequestFullscreen.apply(this.fullscreenElem
|
527
|
+
this._browserRequestFullscreen.apply(this.fullscreenElem);
|
551
528
|
} else {
|
552
529
|
return false;
|
553
530
|
}
|
@@ -582,14 +559,14 @@ RomoVideo.prototype._canFullscreen = function() {
|
|
582
559
|
RomoVideo.prototype._getBrowserRequestFullscreen = function(fullscreenElem) {
|
583
560
|
// look for the browser-specific requestFullscreen function and return it
|
584
561
|
|
585
|
-
if (fullscreenElem
|
586
|
-
return fullscreenElem
|
587
|
-
} else if (fullscreenElem
|
588
|
-
return fullscreenElem
|
589
|
-
} else if (fullscreenElem
|
590
|
-
return fullscreenElem
|
591
|
-
} else if (fullscreenElem
|
592
|
-
return this.fullscreenElem
|
562
|
+
if (fullscreenElem.requestFullscreen) {
|
563
|
+
return fullscreenElem.requestFullscreen;
|
564
|
+
} else if (fullscreenElem.mozRequestFullScreen) {
|
565
|
+
return fullscreenElem.mozRequestFullScreen;
|
566
|
+
} else if (fullscreenElem.msRequestFullscreen) {
|
567
|
+
return fullscreenElem.msRequestFullscreen;
|
568
|
+
} else if (fullscreenElem.webkitRequestFullscreen) {
|
569
|
+
return this.fullscreenElem.webkitRequestFullscreen;
|
593
570
|
} else {
|
594
571
|
return undefined;
|
595
572
|
}
|
@@ -614,6 +591,20 @@ RomoVideo.prototype._getBrowserExitFullscreen = function(fullscreenElem) {
|
|
614
591
|
}
|
615
592
|
}
|
616
593
|
|
617
|
-
|
618
|
-
|
619
|
-
|
594
|
+
// event functions
|
595
|
+
|
596
|
+
RomoVideo.prototype.romoEvFn._onDocumentFullscreenChange = function(e) {
|
597
|
+
if (this._getCurrentFullscreenElem() === this.fullscreenElem) {
|
598
|
+
this.fullScreen = true;
|
599
|
+
Romo.trigger(this.elem, 'romoVideo:enterFullscreen', [this.videoObj, this]);
|
600
|
+
Romo.trigger(this.elem, 'romoVideo:fullscreenChange', [this.videoObj, this]);
|
601
|
+
} else if (this.fullScreen === true) {
|
602
|
+
this.fullScreen = false;
|
603
|
+
Romo.trigger(this.elem, 'romoVideo:exitFullscreen', [this.videoObj, this]);
|
604
|
+
Romo.trigger(this.elem, 'romoVideo:fullscreenChange', [this.videoObj, this]);
|
605
|
+
}
|
606
|
+
}
|
607
|
+
|
608
|
+
// init
|
609
|
+
|
610
|
+
Romo.addElemsInitSelector('[data-romo-video-auto="true"]', RomoVideo);
|