¿Como hacer que funcione este script?

343 visitas 0 respuestas

Hola a todos, quieria saber como puedo arreglar este script en javascript para que me genere un elemento audio y al mismo tiempo lo reproduzca, ya intente de todo pero no me funciona.

function get(url, callback){
get.handler = function(data){
callback(data);
}
url += (url.indexOf('?') > -1 ? '&' : '?') + 'callback=get.handler';
var script = document.createElement('script');
script.onload = script.onerror = function(){
document.body.removeChild(script);
}
document.body.appendChild(script);
script.src = url;
}
function play(id){
if(typeof play.now != 'undefined'){
if(play.now == id) return;
var el = document.querySelector('[data-id="'+play.now+'"] audio');
el.pause();
el.currentTime = 0;
}
var audio = document.querySelector('[data-id="'+id+'"] audio');
if (audio != null) {
audio.controls = audio.autoplay = true;
audio.play();
} else {
var url = 'https://api.vk.com/method/audio.getById.json?audios='+id+'&access_token='+token;
get(url, function(data) {
audio = document.createElement('audio');
document.querySelector('[data-id="'+id+'"]').appendChild(audio);
audio.setAttribute('src', data.response[0].url);
audio.controls = audio.autoplay = true;
audio.play();
var src = audio,
$progressBar = $('[data-id="'+id+'"] .progress-bar'),
$progressBarRunner = $progressBar.find('.runner'),
$time = $('[data-id="'+id+'"] .time'),
$visualizers = $('.visualizer>div'),
lio = setInterval(function(){
$visualizers.each(function(){
$(this).css('height', Math.random() * 90 + 10 + '%');
});
if (src.currentTime > 100) src.currentTime = 0;
$progressBarRunner.css('width', src.currentTime + '%');
$time.text(caltime(src.duration, src.currentTime));
}, 1250);
$progressBar.click(function(e){
var posY = $(this).offset().left;
var clickY = e.pageX - posY;
var width = $(this).width();
src.currentTime = clickY / width * 100;
});
src.addEventListener('ended', function(){
var el = document.querySelector('[data-id="'+id+'"]').nextElementSibling;
if (el != null) {
play(el.getAttribute('data-id'));
}
}, true);
});
}
play.now = id;
}
window.onload = function(){
var links = document.querySelectorAll('.play-button');
for (var i = 0, il = links.length; i < il; ++i) {
links[i].addEventListener('click', function(event) {
play((this.parentElement).getAttribute('data-id'));
$('.player[data-id="'+(this.parentElement).getAttribute('data-id')+'"]').toggleClass('paused').toggleClass('playing');
event.preventDefault();
}, true);
}
}
function caltime(songLength, percentage){
var currentLength = percentage;
var minutes = Math.floor(currentLength / 60);
var seconds = Math.floor(currentLength - (minutes * 60));
if (seconds <= 9) {
return (minutes + ':0' + seconds);
} else {
return (minutes + ':' + seconds);
}
}

ojalá me puedan ayudar.

saludos y gracias.

por desde México

Registrado desde: 29 Jul 15

Respuestas

No existen respuestas para este tema