| Pacote | flash.media |
| Classe | public final class SoundChannel |
| Herança | SoundChannel EventDispatcher Object |
| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop(), propriedades para monitorar a amplitude (volume) do canal e uma propriedade para atribuir um objeto SoundTransform para o canal.
Elementos da API relacionados
| Propriedade | Definido por | ||
|---|---|---|---|
![]() | constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | |
| leftPeak : Number [somente leitura]
A amplitude (volume) atual do canal esquerdo, de 0 (silêncio) a 1 (amplitude total). | SoundChannel | ||
| position : Number [somente leitura]
Quando o som está em reprodução, a propriedade de posição indica o ponto atual em milésimos de segundos que está sendo reproduzido no arquivo de som. | SoundChannel | ||
| rightPeak : Number [somente leitura]
A amplitude (volume) atual do canal direito, de 0 (silêncio) a 1 (amplitude total). | SoundChannel | ||
| soundTransform : flash.media:SoundTransform
O objeto SoundTransform atribuído ao canal de som. | SoundChannel | ||
| Método | Definido por | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | |
![]() |
Envia um evento para o fluxo de eventos. | EventDispatcher | |
![]() |
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | |
![]() |
Indica se um objeto tem uma propriedade especificada definida. | Object | |
![]() |
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | |
![]() |
Indica se a propriedade especificada existe e é enumerável. | Object | |
![]() |
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | |
![]() |
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | |
Para o som em reprodução no canal. | SoundChannel | ||
![]() |
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | |
![]() |
Retorna a representação de string do objeto especificado. | Object | |
![]() |
Retorna o valor primitivo do objeto especificado. | Object | |
![]() |
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher | |
| Evento | Resumo | Definido por | ||
|---|---|---|---|---|
![]() | [transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | ||
![]() | [transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher | ||
| Despachado quando um som termina de ser reproduzido. | SoundChannel | |||
leftPeak | propriedade |
position | propriedade |
position:Number [somente leitura] | Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Quando o som está em reprodução, a propriedade position indica o ponto atual em milésimos de segundos que está sendo reproduzido no arquivo de som. Quando o som é parado ou pausado, a propriedade position indica o último ponto que foi reproduzido no arquivo de som.
Um caso de uso comum é salvar o valor da propriedade position quando o som for interrompido. Você pode retomar o som depois reiniciando-o daquela posição salva.
Se o som for repetido, a posição será redefinida como 0 no início de cada loop.
Implementação
public function get position():NumberrightPeak | propriedade |
soundTransform | propriedade |
soundTransform:flash.media:SoundTransform| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
O objeto SoundTransform atribuído ao canal de som. O objeto SoundTransform inclui propriedades para configurar o volume, o panorama, a atribuição do alto-falante esquerdo e a atribuição do alto-falante direito.
Implementação
public function get soundTransform():flash.media:SoundTransform public function set soundTransform(value:flash.media:SoundTransform):voidElementos da API relacionados
stop | () | método |
public function stop():void| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Para o som em reprodução no canal.
Exemplo ( Como usar este exemplo )
No construtor, o arquivo de som é carregado. (Este exemplo assume que o arquivo de som se encontra no mesmo diretório que o arquivo SWF.) É usado um campo de texto como botão para que o usuário reproduza ou pause o som. Quando o usuário seleciona o campo de texto button, o método clickHandler() é invocado.
No método clickHandler(), na primeira vez que o usuário selecionar o campo de texto, o som é configurado para reprodução e é atribuído a um canal de som. Em seguida, quando o usuário selecionar o campo de texto para pausar, o som vai parar de ser reproduzido. A propriedade do canal de som position registra a posição do som no momento em que ele foi interrompido. Esta propriedade é usada para continuar o início do som naquele trecho, depois que o usuário seleciona o campo de texto para iniciar novamente a reprodução. Todas as vezes que o método Sound.play() for chamado, um novo objeto SoundChannel é criado e atribuído à variável channel. O objeto Sound deve ser atribuído a um objeto SoundChannel para usar o método stop() do canal de som para pausar esse som.
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.Eventpropriedade Event.type =
flash.events.Event.SOUND_COMPLETE| Versão da linguagem: | ActionScript 3.0 |
| Versões de runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Despachado quando um som termina de ser reproduzido.
A constanteEvent.SOUND_COMPLETE define o valor da propriedade type de um objeto de evento soundComplete.
Esse evento tem as seguintes propriedades:
| Propriedade | Valor |
|---|---|
bubbles | false |
cancelable | false; não há comportamento padrão a ser cancelado. |
currentTarget | O objeto que está processando ativamente o objeto Event com um ouvinte de evento. |
target | O objeto SoundChannel no qual um som terminou a execução. |
Exemplo ( Como usar este exemplo )
No construtor, é definido um campo de texto que mantém a lista de músicas e uma linha para selecionar a reprodução. (Normalmente, os botões são usados para reprodução e as caixas de lista para uma lista de músicas.) Um objeto text format é definido para alterar o formato das linhas da música para itálico depois de selecionadas. Quando o usuário seleciona o campo de texto, o método clickHandler() é chamado.
No método clickHandler(), o método getLineIndexAtPoint() do objeto de campo de texto retorna o índice da linha que o usuário selecionou. Usando o índice de linha, o método getLineText() obtém o conteúdo do texto. A declaração if verifica se o usuário selecionou reproduzir ou adicionar uma música à lista de reprodução. Se o usuário selecionou reproduzir e foi selecionada uma canção, o ouvinte de evento de um clique do mouse é removido e o método playNext() é chamado para iniciar a reprodução das músicas. Se o usuário selecionou o título de uma música, o conteúdo da linha é acrescentado à matriz songList e o formato da linha é definido em itálico.
O método playNext() percorre a lista da matriz para carregar e reproduzir cada música. A música também é atribuída a um canal de som. É acrescentado um ouvinte de evento para o canal de som, para que ele responda quando a música terminar a reprodução e o evento Event.SOUND_COMPLETE for despachado. O método soundCompleteHandler() invoca então o método playNext() para reproduzir a próxima música. Esse processo continua até que todas as músicas listadas na matriz terminem de ser reproduzidas.
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();
}
}
}
Wed Jun 13 2018, 11:10 AM Z
Ocultar propriedades públicas herdadas
Mostrar propriedades públicas herdadas