diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt b/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt index 46ea3cdc..2a4b8b30 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt @@ -192,7 +192,12 @@ class PlaybackSession( // As of v2.22.0 tracks use a different endpoint // See: https://github.com/advplyr/audiobookshelf/pull/4263 if (checkIsServerVersionGte("2.22.0")) { - return Uri.parse("$serverAddress/public/session/$id/track/${audioTrack.index}") + return if (isDirectPlay) { + Uri.parse("$serverAddress/public/session/$id/track/${audioTrack.index}") + } else { + // Transcode uses HlsRouter on server + Uri.parse("$serverAddress${audioTrack.contentUrl}") + } } return Uri.parse("$serverAddress${audioTrack.contentUrl}?token=${DeviceManager.token}") } diff --git a/plugins/capacitor/AbsAudioPlayer.js b/plugins/capacitor/AbsAudioPlayer.js index f16b882b..e43d09e3 100644 --- a/plugins/capacitor/AbsAudioPlayer.js +++ b/plugins/capacitor/AbsAudioPlayer.js @@ -255,7 +255,7 @@ class AbsAudioPlayerWeb extends WebPlugin { if (this.currentTrack.contentUrl?.startsWith('/hls')) { sessionTrackUrl = this.currentTrack.contentUrl } else { - sessionTrackUrl = `/public/session/${this.playbackSession.id}/track/${this.currentTrack.index}` + sessionTrackUrl = `/public/session/${this.playbackSession.id}/track/${this.currentTrack.index || 1}` } this.player.src = `${serverHost}${sessionTrackUrl}`