Показать сообщение отдельно
  #2 (permalink)  
Старый 07.07.2019, 16:59
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Lefseq
При заходе на страницу example.html начинает играть мелодия, но если страницу обновить мелодия начинает играть с самого начала, возможно ли сделать, чтобы после обновления страницы мелодия начинала звучать с прерванного места?
Да, надо запомнить время, и при загрузке восстановить его! Этот способ требует добавления уникального id ко всем аудио...
<audio id="my-audio" src="audio.mp3" controls autoplay></audio>
<script>
	addEventListener("beforeunload", function(event) {
		localStorage.audioLastTimes = JSON.stringify(Array.from(document.querySelectorAll("audio[id]"))
		.reduce(function(data, audio) {
			data[audio.id] = audio.currentTime % audio.duration;

			return data;
		}, {}));
	});

	if("audioLastTimes" in localStorage) {
		Object.entries(JSON.parse(localStorage.audioLastTimes)).forEach(function(pair) {
			var audio = document.getElementById(pair[0]);
			if(!audio) return;
			audio.currentTime = pair[1];
		});
	}
</script>
Ответить с цитированием