Paquete | flash.media |
Clase | public final class SoundChannel |
Herencia | SoundChannel EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
, propiedades para supervisar la amplitud (volumen) del canal y una propiedad para asignar un objeto SoundTransform en el canal.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
leftPeak : Number [solo lectura]
La amplitud actual (volumen) del canal izquierdo. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa). | SoundChannel | ||
position : Number [solo lectura]
Cuando se está reproduciendo el sonido, la propiedad position indica (en milisegundos) el punto actual que se está reproduciendo en el archivo de sonido. | SoundChannel | ||
rightPeak : Number [solo lectura]
La amplitud actual (volumen) del canal derecho. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
El objeto SoundTransform asignado al canal de sonido. | SoundChannel |
Método | Definido por | ||
---|---|---|---|
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 | ||
Distribuye un evento en el flujo del evento. | EventDispatcher | ||
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. | EventDispatcher | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Elimina un detector del objeto EventDispatcher. | EventDispatcher | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Detiene el sonido que se reproduce en el canal. | SoundChannel | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object | ||
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 |
Evento | Resumen | Definido por | ||
---|---|---|---|---|
[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. | EventDispatcher | |||
[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos. | EventDispatcher | |||
Se distribuye cuando el sonido ha terminado de reproducirse. | SoundChannel |
leftPeak | propiedad |
leftPeak:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La amplitud actual (volumen) del canal izquierdo. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).
Implementación
public function get leftPeak():Number
position | propiedad |
position:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Cuando se está reproduciendo el sonido, la propiedad position
indica (en milisegundos) 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.
Si el sonido se reproduce de manera indefinida, position
se restablece en 0 al comienzo de cada nueva reproducción.
Implementación
public function get position():Number
rightPeak | propiedad |
rightPeak:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La amplitud actual (volumen) del canal derecho. Valores comprendidos entre 0 (silencio) y 1 (amplitud completa).
Implementación
public function get rightPeak():Number
soundTransform | propiedad |
soundTransform:flash.media:SoundTransform
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Elementos de API relacionados
stop | () | método |
public function stop():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Detiene el sonido que se reproduce en el canal.
Ejemplo ( Cómo utilizar este ejemplo )
En el constructor, se carga el archivo de sonido. (En este ejemplo 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 selecciona el campo de texto button
, se invoca el método clickHandler()
.
En el método clickHandler()
, la primera vez que el usuario selecciona el campo de texto, se define el sonido para que se reproduzca y se asigna a un canal de sonido. A continuación, cuando el usuario selecciona 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 en que se detiene. La propiedad se utiliza para reanudar el sonido en la misma posición cuando el usuario selecciona el campo de texto para volver a iniciar la reproducción. 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"; } } } }
soundComplete | Evento |
flash.events.Event
propiedad Event.type =
flash.events.Event.SOUND_COMPLETE
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Se distribuye cuando el sonido ha terminado de reproducirse.
La constanteEvent.SOUND_COMPLETE
define el valor de la propiedad type
de un objeto de evento soundComplete
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
currentTarget | Objeto que procesa de forma activa el objeto de evento con un detector de eventos. |
target | El objeto SoundChannel en el que ha terminado de reproducirse un sonido. |
Ejemplo ( Cómo utilizar este ejemplo )
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 utilizan para reproducir y los cuadro de lista para la lista de canciones.) Se define un objeto de formato de texto que cambia el formato de las líneas de la canción a cursiva una vez seleccionadas. Cuando el usuario selecciona el campo de texto, se invoca el método clickHandler()
.
En el método clickHandler()
,el método getLineIndexAtPoint()
del objeto de campo de texto devuelve el índice de la línea que el usuario ha seleccionado. Con el índice de la línea, el método getLineText()
obtiene el contenido del texto. La declaración if comprueba si el usuario ha seleccionado la reproducción de una canción o si ha añadido alguna 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 al conjunto songList
y el formato de la línea se define como cursiva.
El método playNext()
itera por la lista de conjuntos 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 el conjunto.
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); } } }
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(); } } }
Tue Jun 12 2018, 02:12 PM Z