Показать сообщение отдельно
  #1 (permalink)  
Старый 16.04.2015, 03:07
Интересующийся
Отправить личное сообщение для Foxeh Посмотреть профиль Найти все сообщения от Foxeh
 
Регистрация: 15.04.2015
Сообщений: 20

Парсить и играть список треков
Здравствуйте! Пишу сейчас плеер на 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');
}*/
//}
Ответить с цитированием