diff --git a/ApiClient.js b/ApiClient.js index de96c4de9..16e2ae3b9 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -1036,7 +1036,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi self.getScheduledTasks = function (options) { options = options || {}; - + var url = self.getUrl("ScheduledTasks", options); return self.ajax({ @@ -1402,6 +1402,19 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }); }; + self.stopActiveEncodings = function () { + + var url = self.getUrl("Videos/ActiveEncodings", { + + deviceId: deviceId + }); + + return self.ajax({ + type: "DELETE", + url: url + }); + }; + self.updateItemImageIndex = function (itemId, itemType, itemName, imageType, imageIndex, newIndex) { if (!imageType) { diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index a12a9d36e..5606237d9 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -108,6 +108,10 @@ var position = Math.floor(10000000 * endTime) + startTimeTicksOffset; ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, position); + + if (currentItem.MediaType == "Video") { + ApiClient.stopActiveEncodings(); + } } function playNextAfterEnded() { @@ -184,9 +188,13 @@ sendProgressUpdate(currentItem.Id); }); - startTimeTicksOffset = ticks; - element.src = currentSrc; + ApiClient.stopActiveEncodings().done(function () { + + startTimeTicksOffset = ticks; + + element.src = currentSrc; + }); } } @@ -479,7 +487,8 @@ maxWidth: Math.min(screenWidth, 1280), StartTimeTicks: 0, SubtitleStreamIndex: getInitialSubtitleStreamIndex(item.MediaStreams, user), - AudioStreamIndex: getInitialAudioStreamIndex(item.MediaStreams, user) + AudioStreamIndex: getInitialAudioStreamIndex(item.MediaStreams, user), + deviceId: ApiClient.deviceId() }; var videoStream = item.MediaStreams.filter(function (i) {