Здравствуйте! Пишу сейчас плеер на JS.... Как играть аудио - я понимаю и знаю. Но, если это не ограничивается 1 mp3 файлом?
У меня страница отдает json со списком аудио, но как это обернуть так, чтоб играли все треки - не нашел материала. Так же как и не нашел о том, как сделать эвенты для смены треков (бинд клавиатуры так же знаю, загвоздка в логике смены аудиотреков)
var playlist = new Array();
//console.log(musicarray);
var musicarray = {<?=$playlist;?>};
//console.log(musicarray.playlist.length);
var i;
//var audioURL = new array();
//var audioindex = 0;
for(i = 0; i < musicarray.playlist.length; i++)
{
//var audios = this;
//console.log(i++);
//console.log(musicarray.playlist[i].url);
playlist[i] = musicarray.playlist[i].url;
//console.log(audioURL);
//audioindex ++;
}
//var audioURL = audiourls.url;
i = 0;
//clearTimeout(timeout)
for(i = 0; i < playlist.length; i++)
{
// Load asynchronously
var request = new XMLHttpRequest();
request.open("GET", playlist[i], true);
console.log(request);
request.responseType = "arraybuffer";
request.onload = function() {
audioContext.decodeAudioData(request.response, function(buffer) {
audioBuffer = buffer;
var duration = audioBuffer.duration;
//console.log(audioBuffer);
startSound();
getduration();
}, function(e) {
$('#prompt').text("error loading mp3");
console.log(e);
});
};
request.send();
getduration = function(){
console.log(parseInt(audioBuffer.duration, 10));
//timeout = setTimeout(parseInt(audioBuffer.duration, 10)*1000);
}
};
var playing;
function startSound() {
if (source){
source.stop(0.0);
source.disconnect();
}
// Connect audio processing graph
source = audioContext.createBufferSource();
source.connect(audioContext.destination);
source.connect(analyser);
source.buffer = audioBuffer;
source.loop = false;
source.start(0.0);
startViz();
playing = this;
return playing;
console.log(playing);
}
/*source.onended = function() {
console.log('Your audio has finished playing');
}*/
//}