diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index cf6c13fed5..7eb57641a9 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -931,7 +931,7 @@ } }; - self.playVideo = function (deviceProfile, playbackInfo, item, mediaSource, startPosition) { + self.playVideo = function (item, mediaSource, startPosition) { var streamInfo = self.createStreamInfo('video', item, mediaSource, startPosition); diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js index be73b4b897..0ba7b27260 100644 --- a/dashboard-ui/scripts/mediaplayer.js +++ b/dashboard-ui/scripts/mediaplayer.js @@ -803,26 +803,24 @@ if (mediaSource) { - self.currentMediaSource = mediaSource; - self.currentItem = item; + if (mediaSource.RequiresOpening1) { - if (item.MediaType === "Video") { + ApiClient.ajax({ + url: ApiClient.getUrl('MediaSources/Open', { + OpenToken: mediaSource.OpenToken + }), + type: 'POST', + dataType: "json" - self.currentMediaElement = self.playVideo(deviceProfile, result, item, self.currentMediaSource, startPosition); - self.currentDurationTicks = self.currentMediaSource.RunTimeTicks; + }).done(function (openLiveStreamResult) { - self.updateNowPlayingInfo(item); + mediaSource = openLiveStreamResult; + playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback); + }); - } else if (item.MediaType === "Audio") { - - self.currentMediaElement = playAudio(item, self.currentMediaSource, startPosition); - self.currentDurationTicks = self.currentMediaSource.RunTimeTicks; + } else { + playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback); } - - if (callback) { - callback(); - } - } else { showPlaybackInfoErrorMessage('NoCompatibleStream'); } @@ -831,6 +829,29 @@ }); }; + function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) { + + self.currentMediaSource = mediaSource; + self.currentItem = item; + + if (item.MediaType === "Video") { + + self.currentMediaElement = self.playVideo(item, self.currentMediaSource, startPosition); + self.currentDurationTicks = self.currentMediaSource.RunTimeTicks; + + self.updateNowPlayingInfo(item); + + } else if (item.MediaType === "Audio") { + + self.currentMediaElement = playAudio(item, self.currentMediaSource, startPosition); + self.currentDurationTicks = self.currentMediaSource.RunTimeTicks; + } + + if (callback) { + callback(); + } + } + function validatePlaybackInfoResult(result) { if (result.ErrorCode) {