Comunidad de diseño web y desarrollo en internet online

Reproducir mp3 y parar su descarga, para mas de dos audios

Citar            
MensajeEscrito el 06 Ene 2014 03:32 pm
Hola amigos, quiero reproducir una serie de audios mp3 (en la web) pero el inconveniente era que al presionar el boton siguiente la descarga del anterior audio continuaba y las descargas se sumaban, asi se saturaba la linea internet. Bueno esto lo solucione gracias al usuario Jorge que me ayudo poniendo el objeto Sound dentro de un array.

El problema es que no reproduce mas de dos audios, este es el código, hay un solo botón en toda la película.

Código ActionScript :

btnsiguiente.addEventListener(MouseEvent.CLICK, fusig);
var channel: SoundChannel = new SoundChannel();
var sTransform:SoundTransform = new SoundTransform(0.3);//0.1 es el volumen
var soundPool:Array = new Array();
var sonido:Sound;
var i:Number = 0;
var song:Array = new Array();
song[0]="audios/01.mp3";
song[1]="audios/02.mp3";
song[2]="audios/03.mp3";
song[3]="audios/04.mp3";
function primero(){
   sonido=new Sound();
   soundPool.push(sonido);
   sonido.load(new URLRequest(song[i]));
   channel = sonido.play(0,0,sTransform);
   channel.addEventListener(Event.SOUND_COMPLETE, fusig);
}
primero();
function fusig(evt:MouseEvent):void{
   soundPool[0].close();
   soundPool.splice(0,1);
   channel.stop();
   i=i+1;
   primero();
}

Gracias por la ayuda

Por edavio

23 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Ene 2014 05:34 pm
Estas hardcodeando el tema que reproduces

soundPool[0].close();

Estás borrando de la cola el tema que reproduces, por lo tanto cambiando el índice de los que quedan

soundPool.splice(0,1);

Estas usando un contador siempre para adelante

i=i+1;

En cada tema consumes dos: el que reproduces y el que borras, es decir con esta programación reproduces el primerto, e tercero y luego te quedas sin.

Sugerencia: usa i como índice y no modifiques el array de temas, de esa forma incluso puedes volver a empezar desde el principio de la lista

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ene 2014 05:59 pm
El close() hace algo mas que parar la descarga ya que cuando la descarga se completa ya no hace caso la funcion fusig
Analizándolo, algo así solucionaría: Poniendo close() dentro de un if

Código ActionScript :

function fusig(evt:MouseEvent):void{
if("descargando"){
   sonido.close();
}
   channel.stop();
   i=i+1;
   primero();
}

Habra algún indicador en actionscript 3.0 que me indique que la descarga se completo o no?

Gracias

Por edavio

23 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Ene 2014 03:00 pm
Volviendo de las vacaciones, y veo que esta pregunta tiene dos semanas, con lo cual descuento que lo has descubierto mirando la clase Sound en la ayuda y viendo que existen las propiedades bytesLoaded y bytesTotal, lo cual te permite hacer una precarga como la que harías con cualquier swf

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.