diff --git a/client/pages/audiobook/_id/chapters.vue b/client/pages/audiobook/_id/chapters.vue index d7a8f9e18e..9fe5773c95 100644 --- a/client/pages/audiobook/_id/chapters.vue +++ b/client/pages/audiobook/_id/chapters.vue @@ -414,11 +414,8 @@ export default { const audioEl = this.audioEl || document.createElement('audio') var src = audioTrack.contentUrl + `?token=${this.userToken}` - if (this.$isDev) { - src = `${process.env.serverUrl}${src}` - } - audioEl.src = src + audioEl.src = `${process.env.serverUrl}${src}` audioEl.id = 'chapter-audio' document.body.appendChild(audioEl) diff --git a/client/players/AudioTrack.js b/client/players/AudioTrack.js index 9627d3cdab..05f11ad952 100644 --- a/client/players/AudioTrack.js +++ b/client/players/AudioTrack.js @@ -1,5 +1,5 @@ export default class AudioTrack { - constructor(track, userToken) { + constructor(track, userToken, routerBasePath) { this.index = track.index || 0 this.startOffset = track.startOffset || 0 // Total time of all previous tracks this.duration = track.duration || 0 @@ -9,20 +9,27 @@ export default class AudioTrack { this.metadata = track.metadata || {} this.userToken = userToken + this.routerBasePath = routerBasePath || '' } + /** + * Used for CastPlayer + */ get fullContentUrl() { if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl if (process.env.NODE_ENV === 'development') { return `${process.env.serverUrl}${this.contentUrl}?token=${this.userToken}` } - return `${window.location.origin}${this.contentUrl}?token=${this.userToken}` + return `${window.location.origin}${this.routerBasePath}${this.contentUrl}?token=${this.userToken}` } + /** + * Used for LocalPlayer + */ get relativeContentUrl() { if (!this.contentUrl || this.contentUrl.startsWith('http')) return this.contentUrl - return this.contentUrl + `?token=${this.userToken}` + return `${this.routerBasePath}${this.contentUrl}?token=${this.userToken}` } } diff --git a/client/players/PlayerHandler.js b/client/players/PlayerHandler.js index ba71fc6c7a..6e4baa45e0 100644 --- a/client/players/PlayerHandler.js +++ b/client/players/PlayerHandler.js @@ -226,7 +226,7 @@ export default class PlayerHandler { console.log('[PlayerHandler] Preparing Session', session) - var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, this.userToken)) + var audioTracks = session.audioTracks.map((at) => new AudioTrack(at, this.userToken, this.ctx.$config.routerBasePath)) this.ctx.playerLoading = true this.isHlsTranscode = true diff --git a/server/models/Book.js b/server/models/Book.js index 527960eab9..94e017f511 100644 --- a/server/models/Book.js +++ b/server/models/Book.js @@ -286,7 +286,7 @@ class Book extends Model { const track = structuredClone(af) track.title = af.metadata.filename track.startOffset = startOffset - track.contentUrl = `${global.RouterBasePath}/api/items/${libraryItemId}/file/${track.ino}` + track.contentUrl = `/api/items/${libraryItemId}/file/${track.ino}` startOffset += track.duration return track }) diff --git a/server/models/PodcastEpisode.js b/server/models/PodcastEpisode.js index 9eb146322d..08baa4be30 100644 --- a/server/models/PodcastEpisode.js +++ b/server/models/PodcastEpisode.js @@ -169,7 +169,7 @@ class PodcastEpisode extends Model { const track = structuredClone(this.audioFile) track.startOffset = 0 track.title = this.audioFile.metadata.filename - track.contentUrl = `${global.RouterBasePath}/api/items/${libraryItemId}/file/${track.ino}` + track.contentUrl = `/api/items/${libraryItemId}/file/${track.ino}` return track } diff --git a/server/objects/files/AudioTrack.js b/server/objects/files/AudioTrack.js index b50d3e3f88..a27c2a016a 100644 --- a/server/objects/files/AudioTrack.js +++ b/server/objects/files/AudioTrack.js @@ -29,7 +29,7 @@ class AudioTrack { this.duration = audioFile.duration this.title = audioFile.metadata.filename || '' - this.contentUrl = `${global.RouterBasePath}/api/items/${itemId}/file/${audioFile.ino}` + this.contentUrl = `/api/items/${itemId}/file/${audioFile.ino}` this.mimeType = audioFile.mimeType this.codec = audioFile.codec || null this.metadata = audioFile.metadata.clone() @@ -44,4 +44,4 @@ class AudioTrack { this.mimeType = 'application/vnd.apple.mpegurl' } } -module.exports = AudioTrack \ No newline at end of file +module.exports = AudioTrack