From 0dcf9a14be3f8668fe5ee65cf0365d457b4d1499 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 26 Mar 2018 15:29:04 +0200 Subject: [PATCH] Fix player error when the media is not supported --- client/src/assets/player/peertube-videojs-plugin.ts | 7 ++++--- client/src/assets/player/video-renderer.ts | 10 ++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/client/src/assets/player/peertube-videojs-plugin.ts b/client/src/assets/player/peertube-videojs-plugin.ts index 277603c9b..52846503d 100644 --- a/client/src/assets/player/peertube-videojs-plugin.ts +++ b/client/src/assets/player/peertube-videojs-plugin.ts @@ -270,7 +270,7 @@ class PeerTubePlugin extends Plugin { this.playerElement = options.playerElement this.player.ready(() => { - this.initializePlayer(options) + this.initializePlayer() this.runTorrentInfoScheduler() this.runViewAdd() }) @@ -331,9 +331,10 @@ class PeerTubePlugin extends Plugin { const options = { autoplay: true, controls: true } renderVideo(torrent.files[0], this.playerElement, options,(err, renderer) => { + this.renderer = renderer + if (err) return this.fallbackToHttp() - this.renderer = renderer if (!this.player.paused()) { const playPromise = this.player.play() if (playPromise !== undefined) return playPromise.then(done) @@ -406,7 +407,7 @@ class PeerTubePlugin extends Plugin { this.updateVideoFile(undefined, () => this.player.play()) } - private initializePlayer (options: PeertubePluginOptions) { + private initializePlayer () { if (this.autoplay === true) { this.updateVideoFile(undefined, () => this.player.play()) } else { diff --git a/client/src/assets/player/video-renderer.ts b/client/src/assets/player/video-renderer.ts index e3415abd3..4affb43cf 100644 --- a/client/src/assets/player/video-renderer.ts +++ b/client/src/assets/player/video-renderer.ts @@ -58,13 +58,11 @@ function renderMedia (file, elem: HTMLVideoElement, opts: RenderMediaOptions, ca const codecs = getCodec(file.name, useVP9) prepareElem() - preparedElem.addEventListener('error', function onError(err) { - // Try with vp9 before returning an error - if (codecs.indexOf('vp8') !== -1) { - preparedElem.removeEventListener('error', onError) + preparedElem.addEventListener('error', function onError (err) { + preparedElem.removeEventListener('error', onError) - return fallbackToMediaSource(true) - } + // Try with vp9 before returning an error + if (codecs.indexOf('vp8') !== -1) return fallbackToMediaSource(true) return callback(err) })