From bf21a282da0af1927771695aa80e18b3009e2e50 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 29 Mar 2015 00:56:39 -0400 Subject: [PATCH] update stream generation --- dashboard-ui/scripts/mediaplayer-video.js | 2 +- dashboard-ui/scripts/mediaplayer.js | 51 ++++++++++++++++------- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index cf6c13fed..7eb57641a 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 be73b4b89..0ba7b2726 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) {