Comunidad de diseño web y desarrollo en internet online

Detectar fin de Streaming de audio (servidor shoutcast)

Citar            
MensajeEscrito el 18 Jul 2009 12:07 am
Buenas noches estimados Maestros del AS3!!

Estoy teniendo un problema con un código en AS3. Es una clase que para una radio online, que me permite oir la transmisión. De hecho todo funciona correctamente y ya está en producción (lo podeis ver en http://radio.billycountry.com). Pero el problemilla (pequeño) que tengo es que necesito saber (como evento) cuando se ha cortado definitivamente (o se ha vaciado el buffer) para poder hacer otras cosas. En concreto sería que cuando la emisora 1 deja de emitir automaticamente con el evento de fin de streaming, yo pueda activar la emisora 2.

Os paso el código por si me podeis ayudar.
De antemano, recibid un cordial saludo.

Tony

Codigo:

Código ActionScript :

package {
   import flash.display.Sprite;
   import flash.net.URLRequest;
   import flash.media.Sound;
   import flash.media.SoundChannel;
   import flash.media.SoundTransform;
   import flash.media.SoundLoaderContext;
   import flash.events.Event;

   //--------------------------
   public class Sonido extends Sprite {     
      public var so:Sound;
      private var url:URLRequest;
      private var buffer:SoundLoaderContext;
      private var ini:Number;
      private var loop:Number;
     private var channel:SoundChannel = new SoundChannel();
     
      //----------------------
      public function Sonido() {
         
      }
        public function stopStream()
        {
         so.close();
         trace("antes "+so)
         channel.stop();
         so = null;
         if(so==null)
         trace("nulo")
         
         channel.dispatchEvent(new Event(Event.SOUND_COMPLETE));         
      }
      public function playStream(qUrl:String, qBuffer:Number, qIni:Number, qLoop:Number)
      {
         url = new URLRequest(qUrl);
         buffer = new SoundLoaderContext(qBuffer*1000);
            ini = qIni*1000;
            loop = (qLoop>= 0) ? qLoop : int.MAX_VALUE;
            so = new Sound(url, buffer);
         channel = so.play(ini, loop);
         channel.soundTransform=new SoundTransform(1);
         channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
         

      }
      public function soundCompleteHandler(event:Event):void {
            trace("FIN" + event);
         channel.soundTransform=new SoundTransform(0);
         
        }






   }
}

Por tonibilly

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Sep 2009 04:34 pm
Hola!.

Pues estuve leyendo el tema y te visite en la web.
Hace tiempo me encontre un par de scripts PHP que podrian servirte para el mismo fin...aunque la gestion de cambio de servidor, no la haria directamente Flash, sino la implementacion de estos scripts y crear un iframe para cada reproductor (1 reproductor por cada servidor).

Lo que hace el script es comprobar si tu Server 1 està o no Online, en caso negativo te lleva al iframe 2 con un poco de Java script embebido.

Intentè que hiciera el paso inverso pero se cicla, lo cual se puede resolver incluyendo un link de texto en el iframe del segundo reproductor para volver al primero.

Si te interesa el ejemplo, puedes contactarme aca:

[email protected]

Saludos!.

Por Gabrielito_07

7 de clabLevel



Genero:Masculino  

2 Meses

msie7

 

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