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

update video poster

This commit is contained in:
Luke Pulverenti 2015-07-03 12:49:49 -04:00
parent 4ce5c2065c
commit b33e90dae7
4 changed files with 37 additions and 18 deletions

View file

@ -489,14 +489,13 @@
*/
self.getItem = function (userId, itemId) {
if (!userId) {
throw new Error("null userId");
}
if (!itemId) {
throw new Error("null itemId");
}
var url = self.getUrl("Users/" + userId + "/Items/" + itemId);
var url = userId ?
self.getUrl("Users/" + userId + "/Items/" + itemId) :
self.getUrl("Items/" + itemId);
return self.ajax({
type: "GET",

View file

@ -1,8 +1,9 @@
(function () {
var supportsTextTracks;
var isViblastStarted;
function htmlMediaRenderer(type) {
function htmlMediaRenderer(options) {
var mediaElement;
var self = this;
@ -135,17 +136,19 @@
var requiresNativeControls = !self.enableCustomVideoControls();
var poster = options.poster ? (' poster="' + options.poster + '"') : '';
// Can't autoplay in these browsers so we need to use the full controls
if (requiresNativeControls && AppInfo.isNativeApp && $.browser.android) {
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous" webkit-playsinline>';
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous"' + poster + ' webkit-playsinline>';
}
else if (requiresNativeControls) {
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous" controls="controls" webkit-playsinline>';
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous"' + poster + ' controls="controls" webkit-playsinline>';
}
else {
// Chrome 35 won't play with preload none
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous" webkit-playsinline>';
html += '<video class="itemVideo" id="itemVideo" preload="metadata" autoplay="autoplay" crossorigin="anonymous"' + poster + ' webkit-playsinline>';
}
html += '</video>';
@ -191,8 +194,12 @@
if (mediaElement) {
mediaElement.pause();
if (mediaElement.tagName == 'VIDEO' && enableViblast()) {
viblast(mediaElement).stop();
if (isViblastStarted) {
requirejs(['https://viblast.com/player/free-version/sdqsdx86/viblast.js'], function () {
viblast(mediaElement).stop();
isViblastStarted = false;
});
}
}
};
@ -259,6 +266,8 @@
stream: val
});
isViblastStarted = true;
} else {
elem.src = val;
$(elem).one("loadedmetadata", onLoadedMetadata);
@ -446,7 +455,7 @@
var deferred = DeferredBuilder.Deferred();
if (type == 'video' && enableViblast()) {
if (options.type == 'video' && enableViblast()) {
requirejs(['https://viblast.com/player/free-version/sdqsdx86/viblast.js'], function () {
@ -460,7 +469,7 @@
return deferred.promise();
};
if (type == 'audio') {
if (options.type == 'audio') {
mediaElement = createAudioElement();
}
else {
@ -469,11 +478,21 @@
}
if (!window.AudioRenderer) {
window.AudioRenderer = htmlMediaRenderer;
window.AudioRenderer = function (options) {
options = options || {};
options.type = 'audio';
return new htmlMediaRenderer(options);
};
}
if (!window.VideoRenderer) {
window.VideoRenderer = htmlMediaRenderer;
window.VideoRenderer = function (options) {
options = options || {};
options.type = 'video';
return new htmlMediaRenderer(options);
};
}
})();

View file

@ -1016,8 +1016,9 @@
$('.videoChaptersButton').hide();
}
var mediaRenderer = new VideoRenderer('video');
mediaRenderer.setPoster(self.getPosterUrl(item));
var mediaRenderer = new VideoRenderer({
poster: self.getPosterUrl(item)
});
var requiresNativeControls = !mediaRenderer.enableCustomVideoControls();
@ -1140,7 +1141,7 @@
self.updateNowPlayingInfo(item);
mediaRenderer.init().done(function() {
mediaRenderer.setCurrentSrc(videoUrl, item, mediaSource);
var textStreams = subtitleStreams.filter(function (s) {

View file

@ -1672,7 +1672,7 @@
function getAudioRenderer() {
return new AudioRenderer('audio');
return new AudioRenderer();
}
function onTimeUpdate() {