#javascript
#javascript
Вопрос:
Я пытаюсь реализовать быструю перемотку вперед в своем приложении. Я добавил прослушиватель событий к кнопке быстрой перемотки вперед, которая добавляет десять секунд к текущему времени аудиоклипа. Проблема в том, что она работает только при первом нажатии кнопки быстрой перемотки вперед.
Я использую timeupdate
событие, отображающее текущее время звука на экране, но мне нужно, чтобы время увеличивалось на десять секунд при каждом нажатии кнопки. Чего мне не хватает? Вот список событий на звуковой дорожке для отображения времени переадресации
function forwardTenSecs (audio_track){
audio_track.addEventListener('timeupdate', () => {
const currentTime = Math.floor(audio_track.currentTime);
const duration = Math.floor(audio_track.duration);
track_time.innerText = `${plusTenSecs(currentTime)} / ${format_time(duration)}`;
}, false);
}
Вот функция, которую я использую для форматирования текущего времени звука и добавления к нему десяти секунд.
function plusTenSecs(time){
let sec = Math.floor(time) parseInt(10);
let min = Math.floor( sec / 60 );
if (min < 10) {
min = '0' min;
}
sec = Math.floor( sec % 60 );
if (sec < 10) {
sec = '0' sec;
}
return min ":" sec;
}
Идея заключается в том, что каждый раз, когда я нажимаю кнопку перемотки вперед, plusTenSecs
должна выполняться функция, которая, в свою очередь forwardTenSecs
, должна запускать функцию.
Чего мне не хватает?
Комментарии:
1. Где функция, которая действительно выполняет эту работу, добавляя 10 секунд к текущему времени?
Ответ №1:
// Add eventListener to the fast-forward button
const btn = document.getElementById("btn").addEventListener('click', fastForward)
// add current time to 10 seconds in every click
function fastForward() {
audio_track.currentTime = 10;
}
Вы можете попробовать демо-версию здесь: https://jsfiddle.net/mu8cz7f4 /
Демонстрационный звук длится всего 1-2 секунды, поэтому я установил просто добавление 0,1 секунды на каждый клик