Fix changing video we are watching

pull/159/head
Chocobozzz 2017-12-11 11:20:54 +01:00
parent 014ad87961
commit ed9f9f5fb0
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
2 changed files with 33 additions and 18 deletions

View File

@ -69,6 +69,10 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
)
this.paramsSub = this.route.params.subscribe(routeParams => {
if (this.videoPlayerLoaded) {
this.player.pause()
}
let uuid = routeParams['uuid']
this.videoService.getVideo(uuid).subscribe(
video => this.onVideoFetched(video),
@ -276,30 +280,35 @@ export class VideoWatchComponent implements OnInit, OnDestroy {
return this.router.navigate([ '/videos/list' ])
}
this.playerElement = this.elementRef.nativeElement.querySelector('#video-element')
// Player was already loaded
if (this.videoPlayerLoaded !== true) {
this.playerElement = this.elementRef.nativeElement.querySelector('#video-element')
const videojsOptions = {
controls: true,
autoplay: true,
plugins: {
peertube: {
videoFiles: this.video.files,
playerElement: this.playerElement,
autoplay: true,
peerTubeLink: false
const videojsOptions = {
controls: true,
autoplay: true,
plugins: {
peertube: {
videoFiles: this.video.files,
playerElement: this.playerElement,
autoplay: true,
peerTubeLink: false
}
}
}
}
this.videoPlayerLoaded = true
this.videoPlayerLoaded = true
const self = this
videojs(this.playerElement, videojsOptions, function () {
self.player = this
this.on('customError', (event, data) => {
self.handleError(data.err)
const self = this
videojs(this.playerElement, videojsOptions, function () {
self.player = this
this.on('customError', (event, data) => {
self.handleError(data.err)
})
})
})
} else {
(this.player as any).setVideoFiles(this.video.files)
}
this.setVideoDescriptionHTML()

View File

@ -283,6 +283,12 @@ const peertubePlugin = function (options: PeertubePluginOptions) {
}
}
player.setVideoFiles = function (files: VideoFile[]) {
player.videoFiles = files
player.updateVideoFile(undefined, () => player.play())
}
player.ready(function () {
const controlBar = player.controlBar