Массив видео-кадров
Привет. Пытаюсь сканировать момент выбора, на шкале прогресса видео-плеера:
.....
choos.addEventListener('mousemove', (e) => {
var skipTo = Math.round((e.offsetX / e.target.clientWidth) * parseInt(e.target.getAttribute('max'), 10));
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
canvas.setAttribute('data-canvas', skipTo);
var rect = video.getBoundingClientRect();
canvas.style.left = `${e.pageX - rect.left}px`;
});
.....
За курсором движется окошко...с не меняющейся картинкой, отображённой, в данный момент, на экране. Допустимо предположить, что видео имеет 24 кадра в секунду. Можно определить - общее количество кадров. Как, через currentTime, выйти на выбранный кадр? |
Цитата:
Цитата:
|
Цитата:
И почему "current-time", а не "currentTime"? |
Цитата:
Цитата:
|
Ну, мэ-э, обошёлся без массива. Примерно, так:
progresBar.addEventListener('mousemove', (e) => {
if (video.paused || video.ended) {
progresBar.focus();
var rect = progresBar.getBoundingClientRect(),
posX = e.clientX - rect.left,
perc = posX / rect.width,
time = perc * video.duration;
if (isFinite(time) && !isNaN(time) && time >= 0) {
video.currentTime = time;
}
}
});
Не совсем то, что хотелось-бы. |
| Часовой пояс GMT +3, время: 06:15. |