Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/02/2015, 05:44
merops
 
Fecha de Ingreso: enero-2015
Mensajes: 33
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: crear barra de progresos en canvas para cancion

saludos,
tengo parte ya , he conseguido hacer el canvas que se mueva como una barra de progreso, y consigo que haga play y pause, aunque se desajusta,
no he conseguido hacer el rewind y forward, y tampoco el restar ,
se que me falta algo, pero no doy con el que,
os mando el codigo a ver si vosotros veis el fallo, ¡que seguro que lo hay!
Cita:
<!DOCTYPE html>
<html>
<head>
<title> Barra de audio con canvas HTML5</title>
<style type="text/css">
canvas {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
display: block;

}
div {
width:500px;
height:60px;
margin: 10px auto;

}
</style>


<script>



var canvas;
var contexto;
var progreso;

window.onload = function(){

//cargamos el elemento canvas
canvas = document.getElementById("pantalla");

//una vez cargado el elemento, le digo en que contexto trabajaremos, en este caso 2d
contexto = canvas.getContext("2d");


}
//barra de progresos dentro del canvas
function Barra()
{
contexto.fillRect(0, 0, progreso++, 30);
}
// cuando activamos play y pause , combina el boton
function pauseplay() {

var musica = document.getElementById("audio2");
var button = document.getElementById("play");
if (musica.paused) {
musica.play();
button.textContent = "||";
progreso = musica.currentTime;
setInterval("Barra()", 500);

} else {
musica.pause();
button.textContent = ">";
progreso=0;

}

}

function restart() {
var musica = document.getElementById("audio2");
//hay que borrar la barra de progreso
contexto.clear(0, 0, progreso++, 30);
}
function salto(value) {
//papra adelantar o atrasar la barra
var musica = document.getElementById("audio2");
musica.currentTime += value;
}

</script>
</head>

<body>
<audio id="audio2" >

<source src="cancion1.mp3" type="audio/mp3" />


</audio>
<canvas id="pantalla" width="500" height="30" style="border: 1px solid green">

</canvas>
<div>
<!--para conseguir ir hacia atras salto le restamos 10, y para adelante le sumamos 10 -->
<button id="rew" onclick="barra(-10)">&lt;&lt;</button>
<button id="play" onclick="pauseplay()">&gt;</button>
<button id="fastFwd" onclick="barra(10)">&gt;&gt;</button>
<button id="restar" onclick="restart">&lhblk;</button>
</div>


</body>


</html>
gracias