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

update components

This commit is contained in:
Luke Pulverenti 2015-07-13 17:26:11 -04:00
parent 697257670c
commit 02ae9ec81e
123 changed files with 13600 additions and 531 deletions

View file

@ -2,6 +2,7 @@
var supportsTextTracks;
var isViblastStarted;
var requiresSettingStartTimeOnStart;
function htmlMediaRenderer(options) {
@ -13,6 +14,21 @@
}
function onTimeUpdate() {
if (isViblastStarted) {
// This is a workaround for viblast not stopping playback at the end
var time = this.currentTime;
var duration = this.duration;
if (duration) {
if (time >= duration) {
MediaPlayer.nextTrack();
return;
}
}
}
$(self).trigger('timeupdate');
}
@ -54,8 +70,7 @@
function onLoadedMetadata() {
// The IE video player won't autoplay without this
if ($.browser.msie) {
if (!isViblastStarted) {
this.play();
}
}
@ -96,15 +111,9 @@
return htmlMediaRenderer.customViblastKey || viblastKey;
}
function onOneVideoPlaying() {
function getStartTime(url) {
var requiresNativeControls = !self.enableCustomVideoControls();
if (requiresNativeControls) {
$(this).attr('controls', 'controls');
}
var src = (self.currentSrc() || '').toLowerCase();
var src = url;
var parts = src.split('#');
@ -114,15 +123,32 @@
if (parts.length == 2) {
var startPositionInSeekParam = parseFloat(parts[1]);
return parseFloat(parts[1]);
}
}
// Appending #t=xxx to the query string doesn't seem to work with HLS
if (startPositionInSeekParam && src.indexOf('.m3u8') != -1) {
var element = this;
setTimeout(function () {
element.currentTime = startPositionInSeekParam;
}, 2500);
}
return 0;
}
function onOneVideoPlaying() {
var requiresNativeControls = !self.enableCustomVideoControls();
if (requiresNativeControls) {
$(this).attr('controls', 'controls');
}
if (requiresSettingStartTimeOnStart) {
var src = (self.currentSrc() || '').toLowerCase();
var startPositionInSeekParam = getStartTime(src);
// Appending #t=xxx to the query string doesn't seem to work with HLS
if (startPositionInSeekParam && src.indexOf('.m3u8') != -1) {
var element = this;
setTimeout(function () {
element.currentTime = startPositionInSeekParam;
}, 2500);
}
}
}
@ -298,6 +324,9 @@
return;
}
requiresSettingStartTimeOnStart = false;
var startTime = getStartTime(val);
if (elem.tagName.toLowerCase() == 'audio') {
elem.src = val;
@ -306,6 +335,15 @@
}
else {
if (startTime) {
try {
elem.currentTime = startTime;
} catch (err) {
// IE will throw an invalid state exception when trying to set currentTime before starting playback
}
requiresSettingStartTimeOnStart = elem.currentTime == 0;
}
if (enableViblast(val)) {
setTracks(elem, tracks || []);
@ -318,6 +356,7 @@
isViblastStarted = true;
} else {
elem.src = val;
setTracks(elem, tracks || []);