¿Quieres registrarte?

Controlar volumen de un audio con Actionscript 3

Por: Hernán
18 de Noviembre del 2008
4159 de clabLevel
Otros artículos de Hernán
5,578 visitas

Este es un tip fácil de como controlar el volumen dentro de un objeto Sound usando Actionscript 3 y el SoundTransform.

Código :

package {
   import flash.display.Sprite;
   import flash.net.URLRequest;
   import flash.media.Sound;
   import flash.media.SoundTransform;
   import flash.media.SoundLoaderContext;
   import flash.media.SoundChannel;
   //--------------------------
   public class Sonido extends Sprite {
      private var soundObject:Sound;
      private var channel:SoundChannel;
      private var url:URLRequest;
      private var buffer:SoundLoaderContext;
      private var init:Number;
      private var loop:Number;
      //----------------------
      public function Sonido(Value_URL:String, Value_Buffer:Number, Value_Init:Number, Value_Loop:Number) {
         url = new URLRequest(Value_URL);
         buffer = new SoundLoaderContext(Value_Buffer*1000);
         soundObject = new Sound(url, buffer);
         channel = soundObject.play(Value_Init, Value_Loop);
      }
      public function setVolume(vol:Number) {
         var transform:SoundTransform = channel.soundTransform;
         transform.volume = vol ;
         channel.soundTransform = transform;
      }
   }
}


Básicamente cuando damos play, usamos Channel para asignarle un identificador y luego creamos la función setVolume() asignando al Channel el objeto Sound Transform, para controlar en este caso el Volumen.

Espero le sirva a alguien.

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas flash sonido actionscript_3

Comentarios | Enviar un comentario
Este tip me trae recuerdos :)

Un poco más de explicación del código o un ejemplo de como implementarlo no le hubiese venido mal al tip ;)
Por: Zguillez
muy bueno,

si, coincido con Z, y si por ahí poner el swf también ayuda, no mucho pero ayuda
Por: eldervaz
por aca nosotros implementamos todo el show de esas clases en una sola, nos ha funcionado bien

solo hay que aplicarla como clase base a un audio de la libreria y listo!
(necesitas TweenLite)

ejem:

var soundItem:SoundItem = new CustomSound();
soundItem.volume = 0;
soundItem.play();
soundItem.fade(1,500);

aca esta la url por si gustan descargarla
http://labs.grupow.com/?p=9

Saludos!
Por: raul-blog

Zguillez :

Este tip me trae recuerdos :)

Un poco más de explicación del código o un ejemplo de como implementarlo no le hubiese venido mal al tip ;)


Si, de hecho esta basado en ese, pasa que el control del volume no solo no es fácil para migrar de AS 2 a 3, sino que si le das F1 al flash, verás que te indica como una método y no propiedad el volume (Fuckers).

Muy buen aporte la clase de música, muy fácil y práctica ;)
Por: Hernán
mmmm pero no explicas mucho como hacerlo solo tiras el codigo y ya!
Por: ptala-blog
Quien me puede ayudar con esto?

Tengo este codigo en AS3 y funciona perfecto, puesto que cumple con lo que le pido: reproducir el sonido de mi radio online...

//inicia el codigo
var url:String = "http://miradio.net:8000/;";
var request:URLRequest = new URLRequest(url);
var mp3:Sound = new Sound(request);
mp3.play();
//fin del codigo

La cuestion es:

¿Como le agrego controles de Play-Pause y Stop?

Agradecerè su ayuda.

Gabriel.
Por: Gabrielito_07
Mmmmm, parece que nadie le entrò a esto, jejeje, aca les traigo otra consulta, la anterior ya la resolvi...

Tengo este codigo:

var snd:Sound = new Sound();
snd.load(new URLRequest("1.mp3"));

var soundCHNL:SoundChannel = new SoundChannel();
soundCHNL = snd.play();

var soundTrans:SoundTransform = new SoundTransform();

fadeOUTbtn.addEventListener(MouseEvent.CLICK, fadesOUT );

function fadesOUT(evt:MouseEvent):void{
soundTrans.volume-= .1 ;
soundCHNL.soundTransform = soundTrans;
}

Y aqui se trata de recrear este efecto sin tener que pulsar ningun boton, alguna idea?

Saludos.
Por: Gabrielito_07
La próxima sería mejor posteee en otro foro, no sobre un tip. Pero de todas formas, ¿No entiendes el código verdad? Porque sino haces solo:

Código :

var snd:Sound = new Sound();
snd.load(new URLRequest("1.mp3"));

var soundCHNL:SoundChannel = new SoundChannel();
soundCHNL = snd.play();

var soundTrans:SoundTransform = new SoundTransform();

soundTrans.volume-= .1 ;
soundCHNL.soundTransform = soundTrans;


Saludos, Hernán . -
Por: Hernán
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.