Запомнить предыдущий объект перед заменой, затем достать данные прежнего
let l_time = video.currentTime, pause = video.paused, playbackRate = video.playbackRate;
video.src = '/video_360.mp4';
video.currentTime = l_time;
video.playbackRate = playbackRate;
Работает, в чем тут дело? Делаю так
(def = video).src = '/video_360.mp4';
video.currentTime = def.currentTime;
video.playbackRate = def.playbackRate;
Необходимо поменять ссылку на файл другого разрешения. Но для того, чтобы после смены файла, видео началось проигрываться с того же момента. Необходимо, поосле смены, задать тайм. В первом случаи работает, но почему не работает во втором? Запоминаем перед заменой ссылки предыдущий объект в стороннюю переменную. А затем вытаскиваем из нее, но в ней уже объект нового файла.
Толи что делаю не так, не понимаю...
Ответы (1 шт):
Проблема в том, что вы запоминаете не предыдущий объект, а ссылку на объект. Потому переменная def продолжает ссылаться на тот же объект. Подробнее можно почитать здесь.
При копировании объекта некоторые свойства теряются. Тогда я просто предлагаю создавать отдельно объект def и записывать в него требуемые значения:
const def = {
currentTime: video.currentTime,
playbackRate: video.playbackRate,
};
// ...
video.currentTime = def.currentTime;
video.playbackRate = def.playbackRate;