Меня не устраивало то, что было предложено, вот мое предложение, используя jQuery:
<div id="playlist">
<audio id="player" controls preload="metadata" volume="1">
<source src="" type="audio/mpeg">
Sorry, this browser doesn't support HTML 5.0
</audio>
<ul></ul>
</div>
<script>
var folder = "audio";
var playlist = [
"example1.mp3",
"example2.mp3"
];
for (var i in playlist) {
jQuery('#playlist ul').append('<li>'+playlist[i]+'</li>');
}
var player = document.getElementById('player');
var playing = playlist[0];
player.src = folder + '/' + playing;
function display(id) {
var list = jQuery('#playlist ul').children();
list.removeClass('playing');
jQuery(list[id]).addClass('playing');
}
display(0);
player.onended = function(){
var ind_next = playlist.indexOf(playing) + 1;
if (ind_next !== 0) {
player.src = folder + '/' + playlist[ind_next];
playing = player.src;
display(ind_next)
player.play();
}
}
</script>
Вам нужно только отредактировать массив playlist
, и вы закончили
Я предлагаю вам сохранять на localStorage только «флажок» с информацией, если пользователь изменил тему или нет (нажал или нет).
Например:
var changed = localStorage.getItem('changed') === 'changed';
$('.selector').toggleClass('classname', changed);
Полный примитивный, но рабочий пример: https://jsfiddle.net/cichy380/y7bLpwxr/