Easy с Jquery
// установка звуковых тегов без предварительной загрузки
<audio class="my_audio" controls preload="none">
<source src="audio/my_song.mp3" type="audio/mpeg">
<source src="audio/my_song.ogg" type="audio/ogg">
</audio>
// добавление jquery для загрузки
$(".my_audio").trigger('load');
// запись методов для воспроизведенияи остановка
function play_audio(task) {
if(task == 'play'){
$(".my_audio").trigger('play');
}
if(task == 'stop'){
$(".my_audio").trigger('pause');
$(".my_audio").prop("currentTime",0);
}
}
// решить, как управлять звуком
<button onclick="play_audio('play')">PLAY</button>
<button onclick="play_audio('stop')">STOP</button>
РЕДАКТИРОВАТЬ
Чтобы ответить на вопрос @ Stomy, вот как выбудет использовать этот подход для воспроизведения списка воспроизведения :
Установите ваши песни в объекте:
playlist = {
'song_1' : 'audio/splat.mp3',
'song_2' : 'audio/saw.mp3',
'song_3' : 'audio/marbles.mp3',
'song_4' : 'audio/seagulls.mp3',
'song_5' : 'audio/plane.mp3'
}
Используйте триггер иВоспроизведение функций, как и раньше:
$(".my_audio").trigger('load');
function play_audio(task) {
if(task == 'play'){
$(".my_audio").trigger('play');
}
if(task == 'stop'){
$(".my_audio").trigger('pause');
$(".my_audio").prop("currentTime",0);
}
}
Динамически загружать первую песню:
keys = Object.keys(playlist);
$('.my_audio').append("<source id='sound_src' src=" + playlist[keys[0]] + " type='audio/mpeg'>");
Сброс источника звука для следующей песни всписок воспроизведения, когда заканчивается текущая песня:
count = 0;
$('.my_audio').on('ended', function() {
count++;
$("#sound_src").attr("src", playlist[keys[count]])[0];
$(".my_audio").trigger('load');
play_audio('play');
});
См. здесь для примера этого кода в действии.