diff --git a/client/pages/share/_slug.vue b/client/pages/share/_slug.vue index 15748b48f..fdcbbe500 100644 --- a/client/pages/share/_slug.vue +++ b/client/pages/share/_slug.vue @@ -363,9 +363,8 @@ export default { console.log('Loaded media item share', this.mediaItemShare) } - const startTime = this.$route.query.t && !isNaN(this.$route.query.t) - ? parseFloat(this.$route.query.t) - : (this.playbackSession.currentTime || 0) + const startTime = this.playbackSession.currentTime || 0 + this.localAudioPlayer.set(null, this.audioTracks, false, startTime, false) this.localAudioPlayer.on('stateChange', this.playerStateChange.bind(this)) this.localAudioPlayer.on('timeupdate', this.playerTimeUpdate.bind(this)) diff --git a/server/controllers/ShareController.js b/server/controllers/ShareController.js index f7dd36f83..73da84a8a 100644 --- a/server/controllers/ShareController.js +++ b/server/controllers/ShareController.js @@ -20,7 +20,7 @@ const ShareManager = require('../managers/ShareManager') */ class ShareController { - constructor() { } + constructor() {} /** * Public route @@ -54,7 +54,7 @@ class ShareController { if (mediaItemShare.id === playbackSession.mediaItemShareId) { Logger.debug(`[ShareController] Found share playback session ${req.cookies.share_session_id}`) // If ?t was provided, override the cached currentTime - if (startTime > 0) { + if (startTime > 0 && startTime < playbackSession.duration) { playbackSession.currentTime = startTime } mediaItemShare.playbackSession = playbackSession.toJSONForClient()