fixes #635 - FFmpeg not being stopped in safari

This commit is contained in:
Luke Pulverenti 2013-12-01 15:17:24 -05:00
parent 2aa7e92987
commit 4a439addcd
2 changed files with 26 additions and 4 deletions

View file

@ -1036,7 +1036,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
self.getScheduledTasks = function (options) { self.getScheduledTasks = function (options) {
options = options || {}; options = options || {};
var url = self.getUrl("ScheduledTasks", options); var url = self.getUrl("ScheduledTasks", options);
return self.ajax({ 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) { self.updateItemImageIndex = function (itemId, itemType, itemName, imageType, imageIndex, newIndex) {
if (!imageType) { if (!imageType) {

View file

@ -108,6 +108,10 @@
var position = Math.floor(10000000 * endTime) + startTimeTicksOffset; var position = Math.floor(10000000 * endTime) + startTimeTicksOffset;
ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, position); ApiClient.reportPlaybackStopped(Dashboard.getCurrentUserId(), currentItem.Id, position);
if (currentItem.MediaType == "Video") {
ApiClient.stopActiveEncodings();
}
} }
function playNextAfterEnded() { function playNextAfterEnded() {
@ -184,9 +188,13 @@
sendProgressUpdate(currentItem.Id); 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), maxWidth: Math.min(screenWidth, 1280),
StartTimeTicks: 0, StartTimeTicks: 0,
SubtitleStreamIndex: getInitialSubtitleStreamIndex(item.MediaStreams, user), 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) { var videoStream = item.MediaStreams.filter(function (i) {