Inbuilt player initial offset on playback start

This commit is contained in:
Sam Calder-Mason 2018-07-19 18:06:46 +10:00
parent 2ee3ec261f
commit 1cc524a056
2 changed files with 19 additions and 11 deletions

View File

@ -11,7 +11,7 @@
:src="getSourceByLabel(chosenQuality)"
:initUrl="getSourceByLabel(chosenQuality).initUrl"
:params="getSourceByLabel(chosenQuality).params"
:initialOffset="playertime"
:initialOffset="offset"
:createdAt="playerCreatedAt"
></videoplayer>
<div v-if="playingMetadata && chosenServer">
@ -164,7 +164,8 @@ export default {
this.chosenKey = query.key.replace('/library/metadata/', '')
this.chosenMediaIndex = query.mediaIndex || 0
this.chosenServer = this.plex.servers[query.chosenServer]
this.playertime = query.playertime
this.offset = query.playertime
console.log('Playertime is now', this.playertime)
}
// Similuate a real plex client
@ -198,8 +199,8 @@ export default {
if (err) {
return data.callback(this.playertime)
}
let difference = Math.abs(time - this.playertime)
console.log('Poll time was out by', difference)
// let difference = Math.abs(time - this.playertime)
// console.log('Poll time was out by', difference)
playerdata.time = time
this.playertime = time
data.callback(playerdata)
@ -227,8 +228,12 @@ export default {
this.chosenMediaIndex = data.params.mediaIndex || 0
this.chosenServer = this.plex.servers[data.params.machineIdentifier]
console.log('Chosen server is now', this.chosenServer)
this.playertime = data.params.offset || 0
this.changedPlaying(true)
this.playertime = data.params.offset || this.$route.query.playertime || 0
this.offset = this.playertime
console.log('Playertime is now', this.playertime)
this.$nextTick(() => {
this.changedPlaying(true)
})
return true
}
if (data.command === '/player/playback/stop') {
@ -288,6 +293,7 @@ export default {
playingMetadata: null,
ready: false,
transcodeSessionMetadata: {},
offset: 0,
// Browser
browser: this.getBrowser(),

View File

@ -225,7 +225,7 @@ export default {
return reject(new Error(e))
}
console.log('Player checks passed')
let lastPlayerSpeed = this.player.currentTime()
let lastPlayerSpeed = this.player.playbackRate()
let lastPlayerTime = this.player.currentTime() * 1000
console.log('Buffer start', this.bufferStart, 'Seek To', seekTo, 'Buffer End', this.bufferEnd)
if (seekTo < this.bufferEnd && seekTo > this.bufferStart) {
@ -262,7 +262,7 @@ export default {
}
console.log('Playback rate: ' + this.player.playbackRate())
if (lastPlayerSpeed === this.player.playbackRate()) {
// Our played doesnt want to change it speed, lets swap to clean seek
// Our played doesnt want to change it speed, lets swap to clean seek
console.log('Failed seek attempt - swapping to clean seek')
this.blockedSpeedChanges = true
reject(new Error('Failed to slow seek as the playback rate did not want to change'))
@ -304,7 +304,7 @@ export default {
this.player.playbackRate(1.0)
return reject(new Error('Slow seek was stopped as we are beyond 5000ms'))
}
lastPlayerSpeed = this.player.currentTime()
lastPlayerSpeed = this.player.playbackSpeed()
}, 25)
} else {
console.log('Directly seeking to a time')
@ -332,8 +332,10 @@ export default {
},
onPlayerLoadeddata (player) {
var that = this
this.player.currentTime(this.initialOffset / 1000)
this.$nextTick(() => {
console.log('Setting player time to', this.initialOffset / 1000)
this.player.currentTime(this.initialOffset / 1000)
})
player.on(['pause'], () => {
this.isPlaying = 'paused'