From 53fbbffa75c6d875d5d33cc30bc52464251c9d62 Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Thu, 20 Aug 2015 09:15:37 -0500 Subject: [PATCH] Take into account item type for direct stream Video and audio --- resources/lib/Entrypoint.py | 2 +- resources/lib/PlayUtils.py | 20 ++++++++------------ resources/lib/PlaybackUtils.py | 3 ++- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/resources/lib/Entrypoint.py b/resources/lib/Entrypoint.py index 4eb2c1ad..55c0ec48 100644 --- a/resources/lib/Entrypoint.py +++ b/resources/lib/Entrypoint.py @@ -204,7 +204,7 @@ def getThemeMedia(): if playback == "DirectPlay": playurl = playUtils.directPlay(theme) else: - playurl = playUtils.directStream(result, server, theme[u'Id'], "ThemeVideo") + playurl = playUtils.directStream(result, server, theme[u'Id'], "Video") pathstowrite += ('%s' % playurl.encode('utf-8')) # Check if the item has theme songs and add them diff --git a/resources/lib/PlayUtils.py b/resources/lib/PlayUtils.py index 3c291790..882a9a68 100644 --- a/resources/lib/PlayUtils.py +++ b/resources/lib/PlayUtils.py @@ -31,12 +31,17 @@ class PlayUtils(): className = self.__class__.__name__ utils.logMsg("%s %s" % (self.addonName, className), msg, int(lvl)) - def getPlayUrl(self, server, id, result): + def getPlayUrl(self, server, id, result, type): WINDOW = self.WINDOW username = WINDOW.getProperty('currUser') server = WINDOW.getProperty('server%s' % username) + if "Audio" in type: + type = "Audio" + else: + type = "Video" + if self.isDirectPlay(result,True): # Try direct play playurl = self.directPlay(result) @@ -46,7 +51,7 @@ class PlayUtils(): elif self.isDirectStream(result): # Try direct stream - playurl = self.directStream(result, server, id) + playurl = self.directStream(result, server, id, type) if playurl: self.logMsg("File is direct streaming.", 1) WINDOW.setProperty("%splaymethod" % playurl, "DirectStream") @@ -161,17 +166,8 @@ class PlayUtils(): def directStream(self, result, server, id, type = "Video"): try: - if "ThemeVideo" in type: + if "Video" in type: playurl ="%s/mediabrowser/Videos/%s/stream?static=true" % (server, id) - - elif "Video" in type: - playurl = "%s/mediabrowser/Videos/%s/stream?static=true" % (server, id) - # Verify audio and subtitles - mediaSources = result[u'MediaSources'] - if mediaSources[0].get('DefaultAudioStreamIndex') != None: - playurl = "%s&AudioStreamIndex=%s" % (playurl, mediaSources[0].get('DefaultAudioStreamIndex')) - if mediaSources[0].get('DefaultSubtitleStreamIndex') != None: - playurl = "%s&SubtitleStreamIndex=%s" % (playurl, mediaSources[0].get('DefaultSubtitleStreamIndex')) elif "Audio" in type: playurl = "%s/mediabrowser/Audio/%s/stream.mp3" % (server, id) diff --git a/resources/lib/PlaybackUtils.py b/resources/lib/PlaybackUtils.py index f61510e7..98468be4 100644 --- a/resources/lib/PlaybackUtils.py +++ b/resources/lib/PlaybackUtils.py @@ -46,6 +46,7 @@ class PlaybackUtils(): try: id = result["Id"] + type = result['Type'] except: return @@ -90,7 +91,7 @@ class PlaybackUtils(): # Let's play the playlist return self.AddToPlaylist(itemsToPlay) - playurl = PlayUtils().getPlayUrl(server, id, result) + playurl = PlayUtils().getPlayUrl(server, id, result, type) if playurl == False or WINDOW.getProperty('playurlFalse') == "true": WINDOW.clearProperty('playurlFalse') xbmc.log("Failed to retrieve the playback path/url.")