diff --git a/ApiClient.js b/ApiClient.js index d139adfc3e..189812a3c8 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -3200,7 +3200,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi * @param {String} userId * @param {String} itemId */ - self.reportPlaybackStart = function (userId, itemId) { + self.reportPlaybackStart = function (userId, itemId, canSeek, queueableMediaTypes) { if (!userId) { throw new Error("null userId"); @@ -3210,17 +3210,26 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi throw new Error("null itemId"); } + canSeek = canSeek || false; + queueableMediaTypes = queueableMediaTypes || ''; + if (self.isWebSocketOpen()) { var deferred = $.Deferred(); - self.sendWebSocketMessage("PlaybackStart", itemId); + var msg = [itemId, canSeek, queueableMediaTypes]; + + self.sendWebSocketMessage("PlaybackStart", msg.join('|')); deferred.resolveWith(null, []); return deferred.promise(); } - var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId); + var url = self.getUrl("Users/" + userId + "/PlayingItems/" + itemId, { + + CanSeek: canSeek, + QueueableMediaTypes: queueableMediaTypes + }); return self.ajax({ type: "POST", diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index 1f1e8b741a..a38efb8dc6 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -438,7 +438,7 @@ audioElement.off("play.once"); - ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id); + ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, true, item.MediaType); startProgressInterval(item.Id); @@ -635,7 +635,7 @@ videoElement.off("play.once"); - ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id); + ApiClient.reportPlaybackStart(Dashboard.getCurrentUserId(), item.Id, true, item.MediaType); startProgressInterval(item.Id); diff --git a/dashboard-ui/scripts/remotecontrol.js b/dashboard-ui/scripts/remotecontrol.js index db662b276e..74f3d2eda1 100644 --- a/dashboard-ui/scripts/remotecontrol.js +++ b/dashboard-ui/scripts/remotecontrol.js @@ -183,7 +183,7 @@ } else if (playCommand == "Browse") { - + promise = ApiClient.sendBrowseCommand(sessionIds[0], { ItemId: item.Id, @@ -236,7 +236,7 @@ promise.done(function () { popup.popup("close"); - + if (showRemoteControlMenuAfterCommand) { RemoteControl.showMenu(); } @@ -256,7 +256,7 @@ return s.DeviceId != deviceId; }); - renderSessionsInPlayMenu(sessions, options, elem); + renderSessionsInPlayMenu(sessions, options, elem, popup); if (ApiClient.isWebSocketOpen()) { ApiClient.sendWebSocketMessage("SessionsStart", "1000,1000"); @@ -287,7 +287,7 @@ if (value == "Play") { browseButtonContainer.show(); - + if (item.Type != 'Person' && item.Type != 'Genre' && item.Type != 'Studio' && item.Type != 'GameGenre' && item.Type != 'MusicGenre') { playButtonContainer.show(); queueButtonContainer.show(); @@ -441,7 +441,7 @@ $('.chkSelectPlayTime:first', elem).checked(true); } - function renderSessionsInPlayMenu(sessions, options, elem) { + function renderSessionsInPlayMenu(sessions, options, elem, popup) { if (!sessions.length) { elem.html('

There are currently no available media browser sessions to control.

'); @@ -507,7 +507,7 @@ var session = sessions[i]; - html += ''; + html += ''; html += ''; html += '' + session.Client + ''; @@ -549,7 +549,7 @@ elem.html(html).trigger('create'); $('.tdSelectSession', elem).html(''); - + $('.chkClient:first', elem).checked(true); $('#remoteControlFlyout').popup("reposition", { tolerance: 0 }); @@ -689,13 +689,13 @@ html += ''; html += '
'; @@ -953,13 +953,19 @@ imageContainer.hide(); } + if (session.CanSeek) { + $('.positionSliderContainer', elem).show(); + } else { + $('.positionSliderContainer', elem).hide(); + } + var time = session.NowPlayingPositionTicks || 0; var duration = item.RunTimeTicks || 0; var percent = duration ? 100 * time / duration : 0; var slider = $('#positionSlider', elem); - + if (!slider[0].isSliding) { slider.val(percent).slider('refresh'); } diff --git a/packages.config b/packages.config index 25b4f7b47c..1c5a0f818d 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file