[IN TESTING] attempt to fix #106

This commit is contained in:
ashley 2024-07-27 11:26:12 +00:00
parent 769a6dea2d
commit e71322bf0d

View file

@ -984,27 +984,50 @@ function cstsRemaining(totalTimeInSeconds, elapsedTimeInSeconds) {
}) })
</script> </script>
<script> <script>
const audioContext = new (window.AudioContext || window.webkitAudioContext)(); document.addEventListener("DOMContentLoaded", () => {
const source = audioContext.createMediaElementSource(aud); const audio = document.getElementById('aud');
const analyser = audioContext.createAnalyser();
source.connect(analyser); if (!video || !audio) {
analyser.connect(audioContext.destination); console.error("Video or audio element not found!");
return;
}
function getQueryParam(name) { // Checks if the browser supports AudioContext
if (!window.AudioContext && !window.webkitAudioContext) {
console.error("Web Audio API not supported in this browser.");
return;
}
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
let source;
try {
source = audioContext.createMediaElementSource(audio);
} catch (e) {
console.error("Error creating media element source:", e);
return;
}
const analyser = audioContext.createAnalyser();
source.connect(analyser);
analyser.connect(audioContext.destination);
// Function to get query parameter from URL
function getQueryParam(name) {
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(name); return urlParams.get(name);
} }
// Check the quality parameter // Check the quality parameter
const quality = getQueryParam('qua'); const quality = getQueryParam('qua');
// Function to check if audio is playing // Function to check if audio is playing
function checkAudio() { function checkAudio() {
// Check if the video has ended, is paused, or has medium quality
if (video.ended || video.paused || quality === 'medium') return; if (video.ended || video.paused || quality === 'medium') return;
// Check if the audio volume is greater than 0 // Check if the audio volume is greater than 0
if (aud.volume === 0) return; if (audio.volume === 0) return;
const bufferLength = analyser.fftSize; const bufferLength = analyser.fftSize;
const dataArray = new Uint8Array(bufferLength); const dataArray = new Uint8Array(bufferLength);
@ -1015,13 +1038,15 @@ function checkAudio() {
if (!isAudioPlaying) { if (!isAudioPlaying) {
// Play/pause workaround to reset audio // Play/pause workaround to reset audio
aud.pause(); audio.pause();
aud.play(); audio.play();
}
} }
}
// Check audio every second // Check audio every second
setInterval(checkAudio, 1000); setInterval(checkAudio, 1000);
});
</script> </script>
<% if(shortsui) { %> <% if(shortsui) { %>
<script> <script>