diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 1cb2ba5a5d..0db2a493f0 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2154,7 +2154,7 @@ class PlaybackManager { }, onInterceptorRejection); } - function onInterceptorRejection() { + function cancelPlayback() { const player = self._currentPlayer; if (player) { @@ -2163,7 +2163,10 @@ class PlaybackManager { } Events.trigger(self, 'playbackcancelled'); + } + function onInterceptorRejection() { + cancelPlayback(); return Promise.reject(); } @@ -2239,6 +2242,15 @@ class PlaybackManager { promise = Promise.resolve(); } + if (!player) { + return promise.then(() => { + cancelPlayback(); + loading.hide(); + console.error(`No player found for the requested media: ${item.Url}`); + showPlaybackInfoErrorMessage(self, 'ErrorPlayerNotFound'); + }); + } + if (!isServerItem(item) || item.MediaType === 'Book') { return promise.then(function () { const streamInfo = createStreamInfoFromUrlItem(item); diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 3646d0585b..8ea3d4d141 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -243,6 +243,7 @@ "ErrorDefault": "There was an error processing the request. Please try again later.", "ErrorDeletingItem": "There was an error deleting the item from the server. Please check that Jellyfin has write access to the media folder and try again.", "ErrorGettingTvLineups": "There was an error downloading TV lineups. Please ensure your information is correct and try again.", + "ErrorPlayerNotFound": "No player found for the requested media.", "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", "ErrorStartHourGreaterThanEnd": "End time must be greater than the start time.",