Paqueteflash.media
Clasepublic final class SoundChannel
HerenciaSoundChannel Inheritance EventDispatcher Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase SoundChannel controla un sonido en una aplicación. A cada sonido que se reproduce en una aplicación de Adobe® Flash® se le asigna un canal de sonido. La aplicación puede incluir varios canales de sonido mezclados entre sí. La clase SoundChannel contiene un método stop(), propiedades para supervisar la amplitud (volumen) del canal y una propiedad para definir un objeto SoundTransform en el canal.

Ver los ejemplos

Véase también

Sound
SoundTransform


Propiedades públicas
 PropiedadDefinido por
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
  leftPeak : Number
[read-only] La amplitud actual (volumen) del canal izquierdo. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).
SoundChannel
  position : Number
[read-only] Cuando se está reproduciendo el sonido, la propiedad position indica el punto actual que se está reproduciendo en el archivo de sonido.
SoundChannel
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
Object
  rightPeak : Number
[read-only] La amplitud actual (volumen) del canal derecho. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).
SoundChannel
  soundTransform : SoundTransform
El objeto SoundTransform asignado al canal de sonido.
SoundChannel
Métodos públicos
 MétodoDefinido por
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento.
EventDispatcher
 Inherited
Distribuye un evento en el flujo del evento.
EventDispatcher
 Inherited
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento.
EventDispatcher
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Elimina un detector del objeto EventDispatcher.
EventDispatcher
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
  
Detiene el sonido que se reproduce en el canal.
SoundChannel
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
 Inherited
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto.
EventDispatcher
Eventos
 Evento Resumen Definido por
 Inherited Se distribuye cuando Flash Player queda seleccionado por el sistema operativo y pasa a estar activo.EventDispatcher
 Inherited Se distribuye cuando Flash Player deja de estar seleccionado por el sistema operativo y pasa a estar inactivo.EventDispatcher
   Se distribuye cuando el sonido ha terminado de reproducirse.SoundChannel
Información sobre propiedades
leftPeakpropiedad
leftPeak:Number  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La amplitud actual (volumen) del canal izquierdo. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).


Implementación
    public function get leftPeak():Number
positionpropiedad 
position:Number  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Cuando se está reproduciendo el sonido, la propiedad position indica el punto actual que se está reproduciendo en el archivo de sonido. Cuando el sonido se detiene o se pone en pausa, la propiedad position indica el último punto que se reprodujo en el archivo de sonido.

Un caso de uso común es guardar el valor de la propiedad position cuando se detiene el sonido. El sonido se puede reanudar más tarde reiniciándolo desde esa posición guardada.


Implementación
    public function get position():Number
rightPeakpropiedad 
rightPeak:Number  [read-only]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La amplitud actual (volumen) del canal derecho. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).


Implementación
    public function get rightPeak():Number
soundTransformpropiedad 
soundTransform:SoundTransform  [read-write]

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

El objeto SoundTransform asignado al canal de sonido. Un objeto SoundTransform incluye propiedades para establecer el volumen, el desplazamiento lateral, la asignación del altavoz izquierdo y la asignación del altavoz derecho.


Implementación
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

Véase también

Información sobre métodos
stop()método
public function stop():void

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Detiene el sonido que se reproduce en el canal.


Ejemplo

En el ejemplo siguiente, el usuario puede hacer clic en un botón para detener y volver a reproducir un archivo de sonido.

En el constructor, se carga el archivo de sonido. (En este caso, se asume que el archivo está en el mismo directorio que el archivo SWF.) Se utiliza un campo de texto como botón para que el usuario reproduzca o detenga el sonido. Cuando el usuario hace clic en el campo de texto button, se invoca el método clickHandler().

En el método clickHandler(), la primera vez que el usuario hace clic en el campo de texto, se define el sonido para que se reproduzca y se asigne a un canal de sonido. A continuación, cuando el usuario hace clic en el campo de texto para poner en pausa, el sonido deja de reproducirse. La propiedad position del canal de sonido registra la posición del sonido en el momento de la detención y la utiliza para reanudarlo desde dicha posición cuando el usuario haga clic en el campo de texto para iniciar de nuevo la reproducción. Tenga en cuenta que cada vez que se llama al método Sound.play() se crea un nuevo objeto SoundChannel y se asigna a la variable channel. El objeto Sound necesita asignarse a un objeto SoundChannel para utilizar el método stop() del canal de sonido para detener el sonido.


package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flash.text.TextFieldAutoSize;

    public class SoundChannel_stopExample extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var button:TextField = new TextField();

        public function SoundChannel_stopExample() {
            var req:URLRequest = new URLRequest("MySound.mp3");
            snd.load(req);

            button.x = 10;
            button.y = 10;
            button.text = "PLAY";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.CENTER;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {
            var pausePosition:int = channel.position;

            if(button.text == "PLAY") {
                channel = snd.play(pausePosition);
                button.text = "PAUSE";
            }
            else {
                channel.stop();
                button.text = "PLAY";
            }
        }
    }
}
Información sobre eventos
soundComplete Evento
Tipo de objeto de evento: flash.events.Event
Event.type property = flash.events.Event.SOUND_COMPLETE

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Se distribuye cuando el sonido ha terminado de reproducirse.

Define el valor de la propiedad type de un objeto de evento soundComplete.

Este evento tiene las propiedades siguientes:

PropiedadValor
bubblesfalse
cancelablefalse; no hay ningún comportamiento predeterminado que cancelar.
currentTargetEl objeto que procesa de forma activa el objeto de evento con un detector de eventos.
targetEl objeto Sound en el que ha terminado de reproducirse un sonido.

Ejemplo

En el ejemplo siguiente, el usuario selecciona canciones de una lista de reproducción y después hace clic en "play" para reproducir las canciones en el orden seleccionado.

En el constructor, se define un campo de texto que contiene la lista de canciones y una línea para la selección de reproducción. (Normalmente, los botones se utilizarán para reproducir y los cuadro de lista para la lista de canciones.) Se ha definido un objeto de formato de texto para cambiar el formato de las líneas de las canciones a cursiva una vez seleccionadas. Cuando el usuario hace clic en el campo de texto, se invoca el método clickHandler().

En el método clickHandler(), getLineIndexAtPoint() del objeto de campo de texto devuelve el índice de la línea donde el usuario ha hecho clic. Con el índice de la línea, el método getLineText() obtiene el contenido del texto. La sentencia if comprueba si el usuario ha seleccionado reproducir o añadir una canción a la lista de reproducción. Si el usuario ha decidido reproducir y se ha seleccionado una canción, se elimina el detector de eventos para el clic del ratón y se llama al método playNext() para comenzar a reproducir las canciones. Si el usuario ha seleccionado el título de la canción, se añade el contenido de la línea a la matriz songList y el formato de la línea se define como cursiva.

El método playNext() itera por la lista matriz para cargar y reproducir cada canción. La canción también se asigna a un canal de sonido. Se añade un detector de eventos para el canal de sonido a fin de que responda cuando termine de reproducirse la canción y se distribuya el evento Event.SOUND_COMPLETE. El método soundCompleteHandler() invoca después el método playNext() para reproducir la siguiente canción. Este proceso continúa hasta que terminan de reproducirse todas las canciones enumeradas en la matriz.

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.text.TextFormat;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.IOErrorEvent;

    public class SoundChannel_event_soundCompleteExample extends Sprite {
        private var channel:SoundChannel = new SoundChannel();
        private var songList:Array = new Array();
        private var listTextField:TextField = new TextField();
        private var songFormat:TextFormat = new TextFormat();
        private var arrayIndex:int = 0;
        private var songSelected:Boolean = false;

        public function SoundChannel_event_soundCompleteExample() {

            listTextField.autoSize = TextFieldAutoSize.LEFT;
            listTextField.border = true
            listTextField.background = true;
            listTextField.text = "Song1.mp3\n" + "Song2.mp3\n"
                                + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY";

            songFormat.italic = true;

            listTextField.addEventListener(MouseEvent.CLICK, clickHandler);

            addChild(listTextField);
        }

        private function clickHandler(e:MouseEvent):void {
            var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY);
            var line:String = listTextField.getLineText(index);
            var firstIndex:uint = listTextField.getLineOffset(index);
            var playLine:uint = listTextField.numLines - 1;

                if((index == playLine) && (songSelected == true)) {
                    listTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
                    playNext();

                } else if (index != playLine) {
                     songList.push(line.substr(0, (line.length - 1)));
                     listTextField.setTextFormat(songFormat, firstIndex,
                                (firstIndex + listTextField.getLineLength(index)));
                    songSelected = true;
                 }
        }

        private function playNext():void {

             if(arrayIndex < songList.length) {
                var snd:Sound = new Sound();
                snd.load(new URLRequest(songList[arrayIndex]));
                channel = snd.play();

                channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                arrayIndex++;

            } else {
                songSelected = false;

                while(arrayIndex > 0) {
                    songList.pop();
                    arrayIndex--;
                }
            }
        }

        private function soundCompleteHandler(e:Event):void {
            playNext();
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace(errorEvent.text);
        }
    }
}
Ejemplos Cómo utilizar los ejemplos
SoundChannelExample.as

En el ejemplo siguiente, se carga un archivo MP3, se reproduce y se muestra información sobre los eventos de sonido que tienen lugar cuando se carga y se reproduce el archivo MP3. Un objeto Timer proporciona información actualizada sobre la posición de la cabeza lectora cada 50 milisegundos. Para ejecutar el ejemplo, coloque un archivo llamado MySound.mp3 en el mismo directorio que el archivo SWF.
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;
    import flash.utils.Timer;

    public class SoundChannelExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var soundFactory:Sound;
        private var channel:SoundChannel;
        private var positionTimer:Timer;

        public function SoundChannelExample() {
            var request:URLRequest = new URLRequest(url);
            soundFactory = new Sound();
            soundFactory.addEventListener(Event.COMPLETE, completeHandler);
            soundFactory.addEventListener(Event.ID3, id3Handler);
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);

            channel = soundFactory.play();
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

            positionTimer = new Timer(50);
            positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler);
            positionTimer.start();
        }


        private function positionTimerHandler(event:TimerEvent):void {
            trace("positionTimerHandler: " + channel.position.toFixed(2));
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function id3Handler(event:Event):void {
            trace("id3Handler: " + event);
        }

        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
            positionTimer.stop();
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: " + event);
        }

        private function soundCompleteHandler(event:Event):void {
            trace("soundCompleteHandler: " + event);
            positionTimer.stop();
        }
    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/media/SoundChannel.html