19.11.2021, 20:06
|
Аспирант
|
|
Регистрация: 06.05.2019
Сообщений: 94
|
|
Не перезаписывать переменную до удаления
Сразу извиняюсь за глупый вопрос, но хочется разобраться в этом
Есть примерно такой код:
video.addEventListener('timeupdate', (event) => {
const time = video.currentTime;
console.log(time);
});
Переменная "time", постоянно перезаписывается.
Интересует следующее, можно сделать что б в переменную записывалось только самое первое значение и не менялось, до того как будет удалена через 'delete time;', и затем cнова также записывалось первое значение и т.д?
Спасибо!
|
|
19.11.2021, 20:17
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Потому, что по мере проигрывания клипа постоянно меняется текущий таймкод и постоянно возникает событие timeupdate
Про переменную и особенно про ее удаление - не понял.
|
|
19.11.2021, 20:39
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
let time;
video.addEventListener('timeupdate', (event) => {
time ??= video.currentTime;
console.log(time);
});
__________________
29375, 35
|
|
19.11.2021, 20:51
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Aetae,
А смысла?
Не проще
let time;
video.addEventListener('timeupdate', (event) => {
time = video.currentTime;
console.log(time);
}, {once:true});
И что там про удаление?
Последний раз редактировалось voraa, 19.11.2021 в 20:53.
|
|
19.11.2021, 20:59
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
voraa,
let time;
time ??= 1;
time ??= 2;
time ??= 3;
time // 1
А удаление, надо полагать, по какому-то другому событию он сделает:
time = null;
(delete, конечно, не сработает) и оно снова перезапишется на currentTime.
Хотя зачем - это да, не понятно. Можно вообще просто рукам брать currentTime и ничего не удалять.
__________________
29375, 35
Последний раз редактировалось Aetae, 19.11.2021 в 21:02.
|
|
19.11.2021, 21:15
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Ну может ты и прав, если там еще какие действия надо делать
Например
let time;
video.addEventListener('timeupdate', (event) => {
time ??= video.currentTime;
if ( video.currentTime - time >= 5000) {
....
}
});
|
|
19.11.2021, 21:30
|
Аспирант
|
|
Регистрация: 06.05.2019
Сообщений: 94
|
|
Все что мне нужно это выполнить события в определенное время видео, через несколько секунд, к примеру 7
Допустим видео начинается с 20-ой секунды, затем:
27 event
34 event
41 event
и т.д
Важно что б события сработали когда именно на видео будет определенная секунда, просто через Interval не подходит
|
|
19.11.2021, 21:39
|
Аспирант
|
|
Регистрация: 06.05.2019
Сообщений: 94
|
|
Я думал если записать первое значение, потом можно сравнить, к примеру:
const time = video.currentTime;
if ( ideo.currentTime > (time + 7)) {
event
delete time;
}
И все по новой, но что то не так тут
|
|
19.11.2021, 21:48
|
Аспирант
|
|
Регистрация: 06.05.2019
Сообщений: 94
|
|
Другими словами мне нужно сделать превью видео при наведение на блок
Что то такое, видео начинается на 20-ой секунде, идет 3 сек, перематывается на 7, идет 3 сек, перематывается на 7 и т.д
|
|
19.11.2021, 22:48
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Жестоко. Ради превью ты юзеру всё видео целиком так скачаешь.)
__________________
29375, 35
|
|
|
|