From 7058b9e879217895a063a955b926188bb6e529ae Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 22 Mar 2014 12:16:43 -0400 Subject: [PATCH] rename MediaVersions to MediaSources --- ApiClient.js | 26 ++++----- dashboard-ui/css/librarybrowser.css | 2 +- dashboard-ui/css/mediaplayer.css | 6 +-- dashboard-ui/scripts/itemdetailpage.js | 66 +++++------------------ dashboard-ui/scripts/librarybrowser.js | 8 +-- dashboard-ui/scripts/librarylist.js | 8 +-- dashboard-ui/scripts/libraryreport.js | 4 +- dashboard-ui/scripts/mediaplayer-video.js | 30 +++++------ dashboard-ui/scripts/mediaplayer.js | 64 +++++++++++----------- packages.config | 2 +- 10 files changed, 87 insertions(+), 129 deletions(-) diff --git a/ApiClient.js b/ApiClient.js index 47719df8d2..765cae6128 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -3791,7 +3791,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi * @param {String} userId * @param {String} itemId */ - self.reportPlaybackStart = function (userId, itemId, mediaVersionId, canSeek, queueableMediaTypes) { + self.reportPlaybackStart = function (userId, itemId, mediaSourceId, canSeek, queueableMediaTypes) { if (!userId) { throw new Error("null userId"); @@ -3810,8 +3810,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi var msg = [itemId, canSeek, queueableMediaTypes]; - if (mediaVersionId) { - msg.push(mediaVersionId); + if (mediaSourceId) { + msg.push(mediaSourceId); } self.sendWebSocketMessage("PlaybackStart", msg.join('|')); @@ -3825,8 +3825,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi QueueableMediaTypes: queueableMediaTypes }; - if (mediaVersionId) { - params.mediaVersionId = mediaVersionId; + if (mediaSourceId) { + params.mediaSourceId = mediaSourceId; } var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params); @@ -3842,7 +3842,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi * @param {String} userId * @param {String} itemId */ - self.reportPlaybackProgress = function (userId, itemId, mediaVersionId, positionTicks, isPaused, isMuted) { + self.reportPlaybackProgress = function (userId, itemId, mediaSourceId, positionTicks, isPaused, isMuted) { if (!userId) { throw new Error("null userId"); @@ -3861,7 +3861,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi msgData += "|" + (positionTicks == null ? "" : positionTicks); msgData += "|" + (isPaused == null ? "" : isPaused); msgData += "|" + (isMuted == null ? "" : isMuted); - msgData += "|" + (mediaVersionId == null ? "" : mediaVersionId); + msgData += "|" + (mediaSourceId == null ? "" : mediaSourceId); self.sendWebSocketMessage("PlaybackProgress", msgData); @@ -3878,8 +3878,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi params.positionTicks = positionTicks; } - if (mediaVersionId) { - params.mediaVersionId = mediaVersionId; + if (mediaSourceId) { + params.mediaSourceId = mediaSourceId; } var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId + "/Progress", params); @@ -3895,7 +3895,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi * @param {String} userId * @param {String} itemId */ - self.reportPlaybackStopped = function (userId, itemId, mediaVersionId, positionTicks) { + self.reportPlaybackStopped = function (userId, itemId, mediaSourceId, positionTicks) { if (!userId) { throw new Error("null userId"); @@ -3911,7 +3911,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi var msg = itemId; msg += "|" + (positionTicks == null ? "" : positionTicks); - msg += "|" + (mediaVersionId == null ? "" : mediaVersionId); + msg += "|" + (mediaSourceId == null ? "" : mediaSourceId); self.sendWebSocketMessage("PlaybackStopped", msg); @@ -3925,8 +3925,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi params.positionTicks = positionTicks; } - if (mediaVersionId) { - params.mediaVersionId = mediaVersionId; + if (mediaSourceId) { + params.mediaSourceId = mediaSourceId; } var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, params); diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 0d148ea157..ba6615ba09 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -926,7 +926,7 @@ a.itemTag:hover { background-color: transparent !important; } -.mediaVersionIndicator { +.mediaSourceIndicator { display: block; position: absolute; top: 5px; diff --git a/dashboard-ui/css/mediaplayer.css b/dashboard-ui/css/mediaplayer.css index 3ed4d78b89..5070af2039 100644 --- a/dashboard-ui/css/mediaplayer.css +++ b/dashboard-ui/css/mediaplayer.css @@ -1,13 +1,13 @@ /* Now playing bar */ .nowPlayingBar { - padding: 6px 0 24px 0; + padding: 6px 0 20px 0; border-top: 2px solid green; } .nowPlayingBar .barBackground { border-top: 2px solid green; position: absolute; - margin: -8px -0.5em -26px !important; + margin: -8px -0.5em -22px !important; width: 100%; height: 100%; } @@ -251,4 +251,4 @@ input[type="range"]::-ms-fill-upper { .positionSliderContainer { width: 300px; } -} \ No newline at end of file +} diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 2fa7883a9a..ddd8f02ef2 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -73,7 +73,7 @@ $('#btnPlayExternalTrailer', page).attr('href', '#'); } - if (user.Configuration.IsAdministrator && item.MediaVersions && item.MediaVersions.length > 1) { + if (user.Configuration.IsAdministrator && item.MediaSources && item.MediaSources.length > 1) { $('.splitVersionContainer', page).show(); } else { $('.splitVersionContainer', page).hide(); @@ -210,8 +210,8 @@ $('#childrenCollapsible', page).addClass('hide'); } - if (item.MediaVersions && item.MediaVersions.length) { - renderMediaVersions(page, item); + if (item.MediaSources && item.MediaSources.length) { + renderMediaSources(page, item); } var chapters = item.Chapters || []; @@ -243,13 +243,6 @@ renderAdditionalParts(page, item, user); } - if (!item.AlternateVersionCount) { - $('#alternateVersionsCollapsible', page).addClass('hide'); - } else { - $('#alternateVersionsCollapsible', page).removeClass('hide'); - renderAlternateVersions(page, item, user); - } - $('#themeSongsCollapsible', page).hide(); $('#themeVideosCollapsible', page).hide(); @@ -346,7 +339,7 @@ tabsHtml += ''; } - if (item.MediaVersions && item.MediaVersions.length) { + if (item.MediaSources && item.MediaSources.length) { tabsHtml += ''; tabsHtml += ''; } @@ -981,41 +974,6 @@ }); } - function renderAlternateVersions(page, item, user) { - - var url = ApiClient.getUrl("Videos/" + item.Id + "/Versions", { - userId: user.Id - }); - - $.getJSON(url).done(function (items) { - - if (items.length) { - - $('#alternateVersionsCollapsible', page).show(); - - var html = LibraryBrowser.getPosterViewHtml({ - items: items.map(function (i) { - var extended = $.extend({}, item, i); - extended.Id = item.Id; - return extended; - }), - shape: "portrait", - context: 'movies', - useAverageAspectRatio: true, - showTitle: true, - centerText: true, - linkItem: false, - showProgress: false, - showUnplayedIndicator: false - }); - - $('#alternateVersionsContent', page).html(html).trigger('create'); - } else { - $('#alternateVersionsCollapsible', page).hide(); - } - }); - } - function renderScenes(page, item, user, limit) { var html = ''; @@ -1069,26 +1027,26 @@ $('#scenesContent', page).html(html).trigger('create'); } - function renderMediaVersions(page, item) { + function renderMediaSources(page, item) { - var html = item.MediaVersions.map(function (v) { + var html = item.MediaSources.map(function (v) { - return getMediaVersionHtml(item, v); + return getMediaSourceHtml(item, v); }).join('
'); - if (item.MediaVersions.length > 1) { + if (item.MediaSources.length > 1) { html = '
' + html; } $('#mediaInfoContent', page).html(html).trigger('create'); } - function getMediaVersionHtml(item, version) { + function getMediaSourceHtml(item, version) { var html = ''; - if (version.Name && item.MediaVersions.length > 1) { + if (version.Name && item.MediaSources.length > 1) { html += '' + version.Name + '
'; } @@ -1334,7 +1292,7 @@ var id = getParameterByName('id'); - Dashboard.confirm("Are you sure you wish to split the versions apart into separate items?", "Split Versions Apart", function (confirmResult) { + Dashboard.confirm("Are you sure you wish to split the media sources into separate items?", "Split Media Apart", function (confirmResult) { if (confirmResult) { @@ -1342,7 +1300,7 @@ $.ajax({ type: "DELETE", - url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions") + url: ApiClient.getUrl("Videos/" + id + "/AlternateSources") }).done(function () { diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 2ee0fbd93d..407fbc525e 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -665,11 +665,11 @@ cssClass += ' ' + options.shape + 'PosterItem'; - var mediaVersionCount = item.MediaVersionCount || 1; + var mediaSourceCount = item.MediaSourceCount || 1; var href = options.linkItem === false ? '#' : LibraryBrowser.getHref(item, options.context); - html += ''; + html += ''; var style = ""; @@ -700,8 +700,8 @@ html += LibraryBrowser.getPlayedIndicatorHtml(item); } - if (mediaVersionCount > 1) { - html += '
' + mediaVersionCount + '
'; + if (mediaSourceCount > 1) { + html += '
' + mediaSourceCount + '
'; } if (item.IsUnidentified) { html += '
'; diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index 14d49af957..23488ac7a2 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -175,7 +175,7 @@ function splitVersions(id, page) { - Dashboard.confirm("Are you sure you wish to split the versions apart into separate items?", "Split Versions Apart", function (confirmResult) { + Dashboard.confirm("Are you sure you wish to split the media sources into separate items?", "Split Media Apart", function (confirmResult) { if (confirmResult) { @@ -183,7 +183,7 @@ $.ajax({ type: "DELETE", - url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions") + url: ApiClient.getUrl("Videos/" + id + "/AlternateSources") }).done(function () { @@ -208,8 +208,8 @@ items.push({ type: 'link', text: 'Images', url: 'edititemimages.html?id=' + id }); - var versionCount = parseInt(elem.getAttribute('data-mediaversioncount') || '0'); - + var versionCount = parseInt(elem.getAttribute('data-mediasourcecount') || '0'); + if (versionCount > 1) { items.push({ type: 'divider' }); diff --git a/dashboard-ui/scripts/libraryreport.js b/dashboard-ui/scripts/libraryreport.js index 0cc02dc1a8..94253c6881 100644 --- a/dashboard-ui/scripts/libraryreport.js +++ b/dashboard-ui/scripts/libraryreport.js @@ -8,7 +8,7 @@ SortBy: defaultSortBy, SortOrder: "Ascending", Recursive: true, - Fields: "MediaVersions,DateCreated,Settings,Studios", + Fields: "MediaSources,DateCreated,Settings,Studios", StartIndex: 0, IncludeItemTypes: "Movie", IsMissing: false, @@ -207,7 +207,7 @@ function getItemCellsHtml(item, headercells) { - var primaryVersion = (item.MediaVersions || []).filter(function (v) { + var primaryVersion = (item.MediaSources || []).filter(function (v) { return v.IsPrimaryVersion; })[0] || {}; diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index 3a74bce72f..c9a36eb536 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -1,5 +1,5 @@ (function () { - videoPlayer = function (mediaPlayer, item, mediaVersion, startPosition, user) { + videoPlayer = function (mediaPlayer, item, mediaSource, startPosition, user) { if (mediaPlayer == null) { throw new Error("mediaPlayer cannot be null"); } @@ -15,7 +15,7 @@ var self = mediaPlayer; var currentItem; - var currentMediaVersion; + var currentMediaSource; var timeout; var video; var initialVolume; @@ -24,7 +24,7 @@ var remoteFullscreen = false; self.initVideoPlayer = function () { - video = playVideo(item, mediaVersion, startPosition, user); + video = playVideo(item, mediaSource, startPosition, user); return video; }; @@ -374,7 +374,7 @@ function getAudioTracksHtml() { - var streams = currentMediaVersion.MediaStreams.filter(function (currentStream) { + var streams = currentMediaSource.MediaStreams.filter(function (currentStream) { return currentStream.Type == "Audio"; }); @@ -444,7 +444,7 @@ function getSubtitleTracksHtml() { - var streams = currentMediaVersion.MediaStreams.filter(function (currentStream) { + var streams = currentMediaSource.MediaStreams.filter(function (currentStream) { return currentStream.Type == "Subtitle"; }); @@ -528,7 +528,7 @@ var currentAudioStreamIndex = getParameterByName('AudioStreamIndex', video.currentSrc); - var options = getVideoQualityOptions(currentMediaVersion.MediaStreams, currentAudioStreamIndex, transcodingExtension); + var options = getVideoQualityOptions(currentMediaSource.MediaStreams, currentAudioStreamIndex, transcodingExtension); if (isStatic) { options[0].name = "Direct"; @@ -696,9 +696,9 @@ return options; }; - function playVideo(item, mediaVersion, startPosition, user) { + function playVideo(item, mediaSource, startPosition, user) { - var mediaStreams = mediaVersion.MediaStreams || []; + var mediaStreams = mediaSource.MediaStreams || []; var baseParams = { audioChannels: 2, @@ -707,23 +707,23 @@ AudioStreamIndex: getInitialAudioStreamIndex(mediaStreams, user), deviceId: ApiClient.deviceId(), Static: false, - mediaVersionId: mediaVersion.Id + mediaSourceId: mediaSource.Id }; var mp4Quality = getVideoQualityOptions(mediaStreams).filter(function (opt) { return opt.selected; })[0]; - mp4Quality = $.extend(mp4Quality, self.getFinalVideoParams(mediaVersion, mp4Quality.maxWidth, mp4Quality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.mp4')); + mp4Quality = $.extend(mp4Quality, self.getFinalVideoParams(mediaSource, mp4Quality.maxWidth, mp4Quality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.mp4')); var webmQuality = getVideoQualityOptions(mediaStreams).filter(function (opt) { return opt.selected; })[0]; - webmQuality = $.extend(webmQuality, self.getFinalVideoParams(mediaVersion, webmQuality.maxWidth, webmQuality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.webm')); + webmQuality = $.extend(webmQuality, self.getFinalVideoParams(mediaSource, webmQuality.maxWidth, webmQuality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.webm')); var m3U8Quality = getVideoQualityOptions(mediaStreams).filter(function (opt) { return opt.selected; })[0]; - m3U8Quality = $.extend(m3U8Quality, self.getFinalVideoParams(mediaVersion, mp4Quality.maxWidth, mp4Quality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.mp4')); + m3U8Quality = $.extend(m3U8Quality, self.getFinalVideoParams(mediaSource, mp4Quality.maxWidth, mp4Quality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.mp4')); // Webm must be ahead of mp4 due to the issue of mp4 playing too fast in chrome var prioritizeWebmOverH264 = $.browser.chrome || $.browser.msie; @@ -883,9 +883,9 @@ videoElement.off("playing.once"); - ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, mediaVersion.Id, true, item.MediaType); + ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, mediaSource.Id, true, item.MediaType); - self.startProgressInterval(item.Id, mediaVersion.Id); + self.startProgressInterval(item.Id, mediaSource.Id); }).on("pause", function (e) { @@ -1001,7 +1001,7 @@ fullscreenExited = false; currentItem = item; - currentMediaVersion = mediaVersion; + currentMediaSource = mediaSource; return videoElement[0]; }; diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index b67efc3c1d..26be435159 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -8,7 +8,7 @@ var currentMediaElement; var currentProgressInterval; var currentItem; - var currentMediaVersion; + var currentMediaSource; var curentDurationTicks; var canClientSeek; var currentPlaylistIndex = 0; @@ -54,7 +54,7 @@ var position = Math.floor(10000000 * endTime) + self.startTimeTicksOffset; - ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, currentMediaVersion.Id, position); + ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, currentMediaSource.Id, position); if (currentItem.MediaType == "Video") { ApiClient.stopActiveEncodings(); @@ -72,7 +72,7 @@ self.nextTrack(); }; - self.startProgressInterval = function (itemId, mediaVersionId) { + self.startProgressInterval = function (itemId, mediaSourceId) { clearProgressInterval(); @@ -81,7 +81,7 @@ currentProgressInterval = setInterval(function () { if (currentMediaElement) { - sendProgressUpdate(itemId, mediaVersionId); + sendProgressUpdate(itemId, mediaSourceId); } }, intervalTime); @@ -136,7 +136,7 @@ var transcodingExtension = self.getTranscodingExtension(); - var finalParams = self.getFinalVideoParams(currentMediaVersion, maxWidth, bitrate, audioStreamIndex, subtitleStreamIndex, transcodingExtension); + var finalParams = self.getFinalVideoParams(currentMediaSource, maxWidth, bitrate, audioStreamIndex, subtitleStreamIndex, transcodingExtension); currentSrc = replaceQueryString(currentSrc, 'MaxWidth', finalParams.maxWidth); currentSrc = replaceQueryString(currentSrc, 'VideoBitrate', finalParams.videoBitrate); currentSrc = replaceQueryString(currentSrc, 'AudioBitrate', finalParams.audioBitrate); @@ -156,8 +156,8 @@ $(this).off('play.onceafterseek').on('ended.playbackstopped', self.onPlaybackStopped).on('ended.playnext', self.playNextAfterEnded); - self.startProgressInterval(currentItem.Id, currentMediaVersion.Id); - sendProgressUpdate(currentItem.Id, currentMediaVersion.Id); + self.startProgressInterval(currentItem.Id, currentMediaSource.Id); + sendProgressUpdate(currentItem.Id, currentMediaSource.Id); }); @@ -194,9 +194,9 @@ self.currentTimeElement.html(timeText); }; - self.canPlayVideoDirect = function (mediaVersion, videoStream, audioStream, subtitleStream, maxWidth, bitrate) { + self.canPlayVideoDirect = function (mediaSource, videoStream, audioStream, subtitleStream, maxWidth, bitrate) { - if (mediaVersion.VideoType != "VideoFile" || mediaVersion.LocationType != "FileSystem") { + if (mediaSource.VideoType != "VideoFile" || mediaSource.LocationType != "FileSystem") { console.log('Transcoding because the content is not a video file'); return false; } @@ -229,7 +229,7 @@ return false; } - var extension = mediaVersion.Path.substring(mediaVersion.Path.lastIndexOf('.') + 1).toLowerCase(); + var extension = mediaSource.Path.substring(mediaSource.Path.lastIndexOf('.') + 1).toLowerCase(); if (extension == 'm4v') { return $.browser.chrome; @@ -238,9 +238,9 @@ return extension.toLowerCase() == 'mp4'; }; - self.getFinalVideoParams = function (mediaVersion, maxWidth, bitrate, audioStreamIndex, subtitleStreamIndex, transcodingExtension) { + self.getFinalVideoParams = function (mediaSource, maxWidth, bitrate, audioStreamIndex, subtitleStreamIndex, transcodingExtension) { - var mediaStreams = mediaVersion.MediaStreams; + var mediaStreams = mediaSource.MediaStreams; var videoStream = mediaStreams.filter(function (stream) { return stream.Type === "Video"; @@ -254,7 +254,7 @@ return stream.Index === subtitleStreamIndex; })[0]; - var canPlayDirect = self.canPlayVideoDirect(mediaVersion, videoStream, audioStream, subtitleStream, maxWidth, bitrate); + var canPlayDirect = self.canPlayVideoDirect(mediaSource, videoStream, audioStream, subtitleStream, maxWidth, bitrate); var audioBitrate = bitrate >= 700000 ? 128000 : 64000; @@ -404,7 +404,7 @@ return parseInt(localStorage.getItem('preferredVideoBitrate') || '') || 1500000; }; - function getOptimalMediaVersion(mediaType, versions) { + function getOptimalMediaSource(mediaType, versions) { var optimalVersion; @@ -449,23 +449,23 @@ if (item.MediaType === "Video") { currentItem = item; - currentMediaVersion = getOptimalMediaVersion(item.MediaType, item.MediaVersions); + currentMediaSource = getOptimalMediaSource(item.MediaType, item.MediaSources); - videoPlayer(self, item, currentMediaVersion, startPosition, user); + videoPlayer(self, item, currentMediaSource, startPosition, user); mediaElement = self.initVideoPlayer(); - curentDurationTicks = currentMediaVersion.RunTimeTicks; + curentDurationTicks = currentMediaSource.RunTimeTicks; mediaControls = $("#videoControls"); } else if (item.MediaType === "Audio") { currentItem = item; - currentMediaVersion = getOptimalMediaVersion(item.MediaType, item.MediaVersions); + currentMediaSource = getOptimalMediaSource(item.MediaType, item.MediaSources); - mediaElement = playAudio(item, currentMediaVersion, startPosition); + mediaElement = playAudio(item, currentMediaSource, startPosition); mediaControls.show(); - curentDurationTicks = currentMediaVersion.RunTimeTicks; + curentDurationTicks = currentMediaSource.RunTimeTicks; } else { throw new Error("Unrecognized media type"); @@ -957,7 +957,7 @@ var position = Math.floor(10000000 * endTime) + self.startTimeTicksOffset; - ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, currentMediaVersion.Id, position); + ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, currentMediaSource.Id, position); } }); @@ -984,9 +984,9 @@ return url + '&' + param + "=" + value; }; - function sendProgressUpdate(itemId, mediaVersionId) { + function sendProgressUpdate(itemId, mediaSourceId) { - ApiClient.reportPlaybackProgress(Dashboard.getCurrentUserId(), itemId, mediaVersionId, self.getCurrentTicks(), currentMediaElement.paused, currentMediaElement.volume == 0); + ApiClient.reportPlaybackProgress(Dashboard.getCurrentUserId(), itemId, mediaSourceId, self.getCurrentTicks(), currentMediaElement.paused, currentMediaElement.volume == 0); }; function clearProgressInterval() { @@ -1008,7 +1008,7 @@ var newPercent = parseInt(this.value); - var newPositionTicks = (newPercent / 100) * currentMediaVersion.RunTimeTicks; + var newPositionTicks = (newPercent / 100) * currentMediaSource.RunTimeTicks; self.changeStream(Math.floor(newPositionTicks)); }; @@ -1022,7 +1022,7 @@ return d >= 0 && text.lastIndexOf(pattern) === d; }; - function playAudio(item, mediaVersion, startPositionTicks) { + function playAudio(item, mediaSource, startPositionTicks) { startPositionTicks = startPositionTicks || 0; @@ -1030,7 +1030,7 @@ audioChannels: 2, audioBitrate: 128000, StartTimeTicks: startPositionTicks, - mediaVersionId: mediaVersion.Id + mediaSourceId: mediaSource.Id }; var mp3Url = ApiClient.getUrl('Audio/' + item.Id + '/stream.mp3', $.extend({}, baseParams, { @@ -1045,7 +1045,7 @@ audioCodec: 'Vorbis' })); - var mediaStreams = mediaVersion.MediaStreams; + var mediaStreams = mediaSource.MediaStreams; var isStatic = false; var seekParam = isStatic && startPositionTicks ? '#t=' + (startPositionTicks / 10000000) : ''; @@ -1057,11 +1057,11 @@ if (stream.Type == "Audio") { // Stream statically when possible - if (endsWith(mediaVersion.Path, ".aac") && stream.BitRate <= 256000) { + if (endsWith(mediaSource.Path, ".aac") && stream.BitRate <= 256000) { aacUrl += "&static=true" + seekParam; isStatic = true; } - else if (endsWith(mediaVersion.Path, ".mp3") && stream.BitRate <= 256000) { + else if (endsWith(mediaSource.Path, ".mp3") && stream.BitRate <= 256000) { mp3Url += "&static=true" + seekParam; isStatic = true; } @@ -1132,9 +1132,9 @@ audioElement.off("play.once"); - ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, mediaVersion.Id, true, item.MediaType); + ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, mediaSource.Id, true, item.MediaType); - self.startProgressInterval(item.Id, mediaVersion.Id); + self.startProgressInterval(item.Id, mediaSource.Id); }).on("pause", function () { @@ -1201,7 +1201,7 @@ return (trunc(titles[0], 30) + "
" + trunc(titles[1], 30)).replace("---", " "); }; - var getItemFields = "MediaVersions,Chapters"; + var getItemFields = "MediaSources,Chapters"; } window.MediaPlayer = new mediaPlayer(); diff --git a/packages.config b/packages.config index bbc2c0f068..7396527bb3 100644 --- a/packages.config +++ b/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file