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():Number
rightPeak | 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):void
Elementos 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.Event
propriedade 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