From 5023651e63110d40f52dadac79f1732248140fdf Mon Sep 17 00:00:00 2001 From: hicom150 Date: Wed, 25 Sep 2019 22:23:35 +0200 Subject: [PATCH 1/2] Improve codec unsupported detection --- src/renderer/pages/player-page.js | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/renderer/pages/player-page.js b/src/renderer/pages/player-page.js index 43f610d6..5d6fa37d 100644 --- a/src/renderer/pages/player-page.js +++ b/src/renderer/pages/player-page.js @@ -1,5 +1,3 @@ -/* global HTMLMediaElement */ - const React = require('react') const Bitfield = require('bitfield') const prettyBytes = require('prettier-bytes') @@ -56,6 +54,14 @@ function renderMedia (state) { mediaElement.pause() } else if (!state.playing.isPaused && mediaElement.paused) { mediaElement.play() + .then(() => { + dispatch('mediaSuccess') + }) + .catch((err) => { + if (err.name === 'NotSupportedError') { + dispatch('mediaError', 'Codec unsupported') + } + }) } // When the user clicks or drags on the progress bar, jump to that position if (state.playing.jumpToTime != null) { @@ -127,10 +133,8 @@ function renderMedia (state) { onLoadedMetadata={onLoadedMetadata} onEnded={onEnded} onStalled={dispatcher('mediaStalled')} - onError={dispatcher('mediaError')} onTimeUpdate={dispatcher('mediaTimeUpdate')} onEncrypted={dispatcher('mediaEncrypted')} - onCanPlay={onCanPlay} > {trackTags} @@ -168,20 +172,6 @@ function renderMedia (state) { if (state.window.isFullScreen) dispatch('toggleFullScreen') } } - - function onCanPlay (e) { - const elem = e.target - if (elem.readyState < HTMLMediaElement.HAVE_FUTURE_DATA) return - if (state.playing.type === 'video' && - elem.webkitVideoDecodedByteCount === 0) { - dispatch('mediaError', 'Video codec unsupported') - } else if (elem.webkitAudioDecodedByteCount === 0) { - dispatch('mediaError', 'Audio codec unsupported') - } else { - dispatch('mediaSuccess') - elem.play() - } - } } function renderOverlay (state) { From d4a8d9a1200d793dae43557ab647d5d800c714a0 Mon Sep 17 00:00:00 2001 From: hicom150 Date: Mon, 7 Oct 2019 17:54:36 +0200 Subject: [PATCH 2/2] Apply review changes --- src/renderer/pages/player-page.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/renderer/pages/player-page.js b/src/renderer/pages/player-page.js index 5d6fa37d..8dc39f2f 100644 --- a/src/renderer/pages/player-page.js +++ b/src/renderer/pages/player-page.js @@ -54,14 +54,10 @@ function renderMedia (state) { mediaElement.pause() } else if (!state.playing.isPaused && mediaElement.paused) { mediaElement.play() - .then(() => { - dispatch('mediaSuccess') - }) - .catch((err) => { - if (err.name === 'NotSupportedError') { - dispatch('mediaError', 'Codec unsupported') - } - }) + .then( + () => dispatch('mediaSuccess'), + () => dispatch('mediaError', 'Codec unsupported') + ) } // When the user clicks or drags on the progress bar, jump to that position if (state.playing.jumpToTime != null) {