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

#514 - Support HLS seeking

This commit is contained in:
Luke Pulverenti 2014-07-01 17:13:32 -04:00
parent 83ada41f7e
commit 683e6f472c
5 changed files with 45 additions and 53 deletions

View file

@ -655,7 +655,7 @@
} }
if (item.Studios.length) { if (item.Studios.length) {
html += ' on <a class="textlink" href="itembynamedetails.html?context=' + context + '&studio=' + ApiClient.encodeName(item.Studios[0].Name) + '">' + item.Studios[0].Name + '</a>'; html += ' on <a class="textlink" href="itembynamedetails.html?context=' + context + '&id=' + item.Studios[0].Id + '">' + item.Studios[0].Name + '</a>';
} }
if (html) { if (html) {

View file

@ -1781,7 +1781,7 @@
html += '&nbsp;&nbsp;/&nbsp;&nbsp;'; html += '&nbsp;&nbsp;/&nbsp;&nbsp;';
} }
html += '<a class="textlink" href="itembynamedetails.html?context=' + context + '&studio=' + ApiClient.encodeName(item.Studios[i].Name) + '">' + item.Studios[i].Name + '</a>'; html += '<a class="textlink" href="itembynamedetails.html?context=' + context + '&id=' + item.Studios[i].Id + '">' + item.Studios[i].Name + '</a>';
} }
elem.show().html(html).trigger('create'); elem.show().html(html).trigger('create');

View file

@ -1007,13 +1007,7 @@
EnableAutoStreamCopy: false EnableAutoStreamCopy: false
})); }));
if (isStatic) webmVideoUrl += seekParam; var hlsVideoUrl = ApiClient.getUrl('Videos/' + item.Id + '/master.m3u8', $.extend({}, baseParams, {
var hlsVideoUrl;
if (item.RunTimeTicks) {
hlsVideoUrl = ApiClient.getUrl('Videos/' + item.Id + '/master.m3u8', $.extend({}, baseParams, {
timeStampOffsetMs: 0,
maxWidth: m3U8Quality.maxWidth, maxWidth: m3U8Quality.maxWidth,
videoBitrate: m3U8Quality.videoBitrate, videoBitrate: m3U8Quality.videoBitrate,
audioBitrate: m3U8Quality.audioBitrate, audioBitrate: m3U8Quality.audioBitrate,
@ -1025,19 +1019,6 @@
})) + seekParam; })) + seekParam;
} else {
hlsVideoUrl = ApiClient.getUrl('Videos/' + item.Id + '/stream.m3u8', $.extend({}, baseParams, {
timeStampOffsetMs: 0,
maxWidth: m3U8Quality.maxWidth,
videoBitrate: m3U8Quality.videoBitrate,
audioBitrate: m3U8Quality.audioBitrate,
VideoCodec: m3U8Quality.videoCodec,
AudioCodec: m3U8Quality.audioCodec,
profile: 'baseline',
level: '3'
})) + seekParam;
}
//======================================================================================> //======================================================================================>
// Create video player // Create video player
@ -1199,9 +1180,7 @@
}).on("error.mediaplayerevent", function () { }).on("error.mediaplayerevent", function () {
self.clearPauseStop(); self.stop();
self.resetEnhancements();
var errorCode = this.error ? this.error.code : ''; var errorCode = this.error ? this.error.code : '';
console.log('Html5 Video error code: ' + errorCode); console.log('Html5 Video error code: ' + errorCode);
@ -1212,11 +1191,16 @@
errorMsg += " Please ensure there is an open tuner availalble."; errorMsg += " Please ensure there is an open tuner availalble.";
} }
if (errorCode) {
errorMsg += " Error code: " + errorCode;
}
Dashboard.alert({ Dashboard.alert({
title: 'Video Error', title: 'Video Error',
message: errorMsg message: errorMsg
}); });
}).on("click.mediaplayerevent", function (e) { }).on("click.mediaplayerevent", function (e) {
if (this.paused) { if (this.paused) {

View file

@ -879,9 +879,9 @@
var elem = self.currentMediaElement; var elem = self.currentMediaElement;
elem.pause(); if (elem) {
var isVideo = self.currentItem.MediaType == "Video"; elem.pause();
$(elem).off("ended.playnext").one("ended", function () { $(elem).off("ended.playnext").one("ended", function () {
@ -898,7 +898,13 @@
}).trigger("ended"); }).trigger("ended");
if (isVideo) { } else {
self.currentMediaElement = null;
self.currentItem = null;
self.currentMediaSource = null;
}
if (self.currentItem && self.currentItem.MediaType == "Video") {
if (self.isFullScreen()) { if (self.isFullScreen()) {
self.exitFullScreen(); self.exitFullScreen();
} }

View file

@ -27,6 +27,7 @@
{}, {},
{ name: 'Series', sortField: 'SeriesSortName,SortName' }, { name: 'Series', sortField: 'SeriesSortName,SortName' },
{ name: 'Season', sortField: 'SortName' }, { name: 'Season', sortField: 'SortName' },
{ name: 'Season Number', sortField: 'IndexNumber' },
{ name: 'Date Added', sortField: 'DateCreated,SortName' } { name: 'Date Added', sortField: 'DateCreated,SortName' }
]; ];
} }
@ -260,6 +261,7 @@
html += item.ParentIndexNumber == null ? '' : item.ParentIndexNumber; html += item.ParentIndexNumber == null ? '' : item.ParentIndexNumber;
break; break;
} }
case 'Season Number':
case 'Track': case 'Track':
{ {
html += item.IndexNumber == null ? '' : item.IndexNumber; html += item.IndexNumber == null ? '' : item.IndexNumber;