From 7ca97901eea9c72bb2b241366f2afa3c9aae8662 Mon Sep 17 00:00:00 2001 From: Dominika Liberda Date: Tue, 20 Apr 2021 23:40:55 +0200 Subject: [PATCH] * fixes undefined videoFormat with forced stream id --- webroot/js/player.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/webroot/js/player.js b/webroot/js/player.js index 9b1fb5f..30ce26f 100644 --- a/webroot/js/player.js +++ b/webroot/js/player.js @@ -2,7 +2,7 @@ window.addEventListener('DOMContentLoaded', (event) => { const video = document.getElementById('player_video'); const audio = document.getElementById('player_audio'); - const formats = JSON.parse(document.getElementById('yt_formats').innerText) + formats = JSON.parse(document.getElementById('yt_formats').innerText) .filter((fmt) => isFormatSupported(fmt) === true) .sort((a, b) => { if (a.vcodec === 'none' && b.vcodec !== 'none') { @@ -23,17 +23,21 @@ window.addEventListener('DOMContentLoaded', (event) => { if (localStorage.getItem("videoStream") == null) { const videoFormat = formats.find((fmt) => fmt.vcodec !== 'none'); const audioFormat = videoFormat.acodec === 'none' ? formats.find((fmt) => fmt.acodec !== 'none') : null; - console.log('aaaaaaaaaaaaaaa') console.log('selected video format', videoFormat); console.log('selected audio format', audioFormat); selectStreams(videoFormat, audioFormat) } else { - const videoFormat = formats.find((fmt) => fmt.format_id == localStorage.getItem("videoStream")); + let videoFormat = formats.find((fmt) => fmt.format_id == localStorage.getItem("videoStream")); + if (videoFormat == null) { + videoFormat = formats.find((fmt) => fmt.vcodec !== 'none'); + } const audioFormat = videoFormat.acodec === 'none' ? formats.find((fmt) => fmt.format_id == localStorage.getItem("audioStream")) : null; + if (audioFormat == null) { + audioFormat = videoFormat.acodec === 'none' ? formats.find((fmt) => fmt.acodec !== 'none') : null; + } console.log('selected video format', videoFormat); console.log('selected audio format', audioFormat); - selectStreams(videoFormat, audioFormat) } @@ -160,15 +164,17 @@ window.addEventListener('DOMContentLoaded', (event) => { function applyStreams() { let videoStreamInput = document.querySelector('#videoStreamInput'); let audioStreamInput = document.querySelector('#audioStreamInput'); - localStorage.setItem("videoStream", parseInt(videoStreamInput.value)); - localStorage.setItem("audioStream", parseInt(audioStreamInput.value)); + localStorage.setItem("videoStream", videoStreamInput.value); + localStorage.setItem("audioStream", audioStreamInput.value); - + const videoFormat = formats.find((fmt) => fmt.format_id == videoStreamInput.value); + const audioFormat = videoFormat.acodec === 'none' ? formats.find((fmt) => fmt.format_id == audioStreamInput.value) : null; + selectStreams(videoFormat, audioFormat) } function resetStreams() { - localStorage.setItem("videoStream", null); - localStorage.setItem("audioStream", null); + localStorage.removeItem("videoStream"); + localStorage.removeItem("audioStream"); } function getMimeType(fmt) {