From ed5d89a7b75d7387e50555e955aa6db2f7fd6dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Re=C5=88ak?= Date: Sun, 3 Nov 2024 16:15:03 +0100 Subject: [PATCH] update videoplayer --- Script_Speech_recognition/videoplayer.js | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Script_Speech_recognition/videoplayer.js b/Script_Speech_recognition/videoplayer.js index 5d5397f..a22d3ad 100644 --- a/Script_Speech_recognition/videoplayer.js +++ b/Script_Speech_recognition/videoplayer.js @@ -5,11 +5,10 @@ const translateLettersBtn = document.getElementById('translateLettersBtn'); const prevBtn = document.getElementById('prevBtn'); const nextBtn = document.getElementById('nextBtn'); -let videoSequence = []; // Array to store video paths -let currentIndex = 0; // Track the current video index -let autoPlayEnabled = true; // Flag for autoplay +let videoSequence = []; +let currentIndex = 0; +let autoPlayEnabled = true; -// Helper function to check if a video file exists function videoExists(src) { return new Promise(resolve => { const video = document.createElement('video'); @@ -19,9 +18,8 @@ function videoExists(src) { }); } -// Function to load video sequence based on words async function loadVideoSequenceByWords() { - const words = inputText.value.trim().split(' '); // Split input into words + const words = inputText.value.trim().split(' '); videoSequence = []; for (const word of words) { @@ -33,13 +31,11 @@ async function loadVideoSequenceByWords() { currentIndex = 0; } -// Function to load video sequence based on letters async function loadVideoSequenceByLetters() { - const characters = inputText.value.trim().split(''); // Split input into characters + const characters = inputText.value.trim().split(''); videoSequence = []; for (const char of characters) { - // Skip spaces and punctuation if (/[a-zA-Z]/.test(char)) { const videoSrc = `video/pismena/${char.toLowerCase()}.mp4`; if (await videoExists(videoSrc)) { @@ -50,10 +46,8 @@ async function loadVideoSequenceByLetters() { currentIndex = 0; } -// Function to play video at the specified index function playVideoAtIndex(index) { if (index < 0 || index >= videoSequence.length) return; - videoPlayer.src = videoSequence[index]; videoPlayer.play(); currentIndex = index; @@ -72,7 +66,6 @@ function playVideoAtIndex(index) { } } -// Event listener for the "Preložiť po slovách" button translateWordsBtn.addEventListener('click', async () => { autoPlayEnabled = true; await loadVideoSequenceByWords(); @@ -81,7 +74,6 @@ translateWordsBtn.addEventListener('click', async () => { } }); -// Event listener for the "Preložiť po písmenách" button translateLettersBtn.addEventListener('click', async () => { autoPlayEnabled = true; await loadVideoSequenceByLetters(); @@ -90,7 +82,6 @@ translateLettersBtn.addEventListener('click', async () => { } }); -// Event listeners for "Previous" and "Next" buttons prevBtn.addEventListener('click', () => { if (currentIndex > 0) { autoPlayEnabled = false; @@ -108,3 +99,15 @@ nextBtn.addEventListener('click', () => { }); +function hideControls() { + if (!videoPlayer.matches(':hover')) { + videoPlayer.controls = false; + } + requestAnimationFrame(hideControls); +} + +videoPlayer.addEventListener('mouseenter', () => { + videoPlayer.controls = true; +}); + +hideControls();