1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update event binding

This commit is contained in:
Luke Pulverenti 2015-12-17 10:54:47 -05:00
parent bcfbb01b4b
commit a08715f2f2
10 changed files with 164 additions and 126 deletions

View file

@ -26,7 +26,7 @@
function onEnded() {
showStatusBar();
$(self).trigger('ended');
Events.trigger(self, 'ended');
}
function onTimeUpdate() {
@ -46,50 +46,58 @@
// }
//}
$(self).trigger('timeupdate');
Events.trigger(self, 'timeupdate');
}
function onVolumeChange() {
$(self).trigger('volumechange');
Events.trigger(self, 'volumechange');
}
function onOneAudioPlaying() {
function onOneAudioPlaying(e) {
var elem = e.target;
elem.removeEventListener('playing', onOneAudioPlaying);
$('.mediaPlayerAudioContainer').hide();
}
function onPlaying() {
$(self).trigger('playing');
Events.trigger(self, 'playing');
}
function onPlay() {
$(self).trigger('play');
Events.trigger(self, 'play');
}
function onPause() {
$(self).trigger('pause');
Events.trigger(self, 'pause');
}
function onClick() {
$(self).trigger('click');
Events.trigger(self, 'click');
}
function onDblClick() {
$(self).trigger('dblclick');
Events.trigger(self, 'dblclick');
}
function onError() {
function onError(e) {
var errorCode = this.error ? this.error.code : '';
var elem = e.target;
var errorCode = elem.error ? elem.error.code : '';
Logger.log('Media element error code: ' + errorCode);
showStatusBar();
$(self).trigger('error');
Events.trigger(self, 'error');
}
function onLoadedMetadata() {
function onLoadedMetadata(e) {
var elem = e.target;
elem.removeEventListener('loadedmetadata', onLoadedMetadata);
if (!hlsPlayer) {
this.play();
elem.play();
}
}
@ -119,14 +127,17 @@
return 0;
}
function onOneVideoPlaying() {
function onOneVideoPlaying(e) {
hideStatusBar();
var element = e.target;
element.removeEventListener('playing', onOneVideoPlaying);
var requiresNativeControls = !self.enableCustomVideoControls();
if (requiresNativeControls) {
$(this).attr('controls', 'controls');
$(element).attr('controls', 'controls');
}
if (requiresSettingStartTimeOnStart) {
@ -138,7 +149,6 @@
if (startPositionInSeekParam && src.indexOf('.m3u8') != -1) {
var delay = browserInfo.safari ? 2500 : 0;
var element = this;
if (delay) {
setTimeout(function () {
element.currentTime = startPositionInSeekParam;
@ -173,15 +183,18 @@
elem = $('.mediaPlayerAudio');
}
return $(elem)
.on('timeupdate', onTimeUpdate)
.on('ended', onEnded)
.on('volumechange', onVolumeChange)
.one('playing', onOneAudioPlaying)
.on('play', onPlay)
.on('pause', onPause)
.on('playing', onPlaying)
.on('error', onError)[0];
elem = elem[0];
elem.addEventListener('playing', onOneAudioPlaying);
elem.addEventListener('timeupdate', onTimeUpdate);
elem.addEventListener('ended', onEnded);
elem.addEventListener('volumechange', onVolumeChange);
elem.addEventListener('error', onError);
elem.addEventListener('pause', onPause);
elem.addEventListener('play', onPlay);
elem.addEventListener('playing', onPlaying);
return elem;
}
function enableHlsPlayer(src) {
@ -221,18 +234,24 @@
var elem = $('#videoElement', '#videoPlayer').prepend(html);
return $('.itemVideo', elem)
.one('.loadedmetadata', onLoadedMetadata)
.one('playing', onOneVideoPlaying)
.on('timeupdate', onTimeUpdate)
.on('ended', onEnded)
.on('volumechange', onVolumeChange)
.on('play', onPlay)
.on('pause', onPause)
.on('playing', onPlaying)
.on('click', onClick)
.on('dblclick', onDblClick)
.on('error', onError)[0];
var itemVideo = $('.itemVideo', elem)[0];
itemVideo.addEventListener('loadedmetadata', onLoadedMetadata);
itemVideo.addEventListener('playing', onOneVideoPlaying);
itemVideo.addEventListener('timeupdate', onTimeUpdate);
itemVideo.addEventListener('ended', onEnded);
itemVideo.addEventListener('volumechange', onVolumeChange);
itemVideo.addEventListener('voluplaymechange', onPlay);
itemVideo.addEventListener('pause', onPause);
itemVideo.addEventListener('playing', onPlaying);
itemVideo.addEventListener('click', onClick);
itemVideo.addEventListener('dblclick', onDblClick);
itemVideo.addEventListener('error', onError);
return itemVideo;
}
// Save this for when playback stops, because querying the time at that point might return 0
@ -384,7 +403,7 @@
setTracks(elem, tracks);
$(elem).one("loadedmetadata", onLoadedMetadata);
elem.addEventListener("loadedmetadata", onLoadedMetadata);
playNow = true;
}