Pacote | flash.events |
Classe | public class SampleDataEvent |
Herança | SampleDataEvent Event Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Este evento tem dois usos:
- Fornecer dados de áudio gerado dinamicamente de um objeto Som
- Adquirir dados de áudio de um objeto Microfone
Áudio gerado dinamicamente, usando o objeto Som Use o evento sampleData
para jogar o áudio gerado dinamicamente. Nesse ambiente, o objeto Sound não contém realmente dados de som. Em vez disso, ele atua como um soquete para dados de som que estão sendo transmitidos por meio do uso da função que você atribui ao evento sampleData
.
Na sua função, use o método ByteArray.writeFloat()
para gravar na propriedade data
) do evento, que contém os dados de amostra que deverão ser reproduzidos.
Se um objeto Som não carregou um arquivo MP3, quando você invoca o seu play()
método o despacho de partidas de objeto sampleData
eventos, solicitando amostras sólidas. O objeto Som continua para enviar eventos conforme o som é reproduzido até que você interrompa o fornecimento de dados, ou até que o método parar()
do objeto de SoundChannel é chamado.
A latência do evento varia de uma plataforma para outra e pode mudar em versões futuras do Flash Player ou AIR. Não dependa de uma latência específica. Em vez disso, calcule-o utilizando ((SampleDataEvent.position/44.1) - SoundChannelObject.position)
.
Forneça entre 2048 e 8192 amostras à propriedade dados
propriedade do objeto de SampleDataEvent. Para obter um desempenho ideal, forneça o máximo possível de amostras. Quanto menos amostras forem fornecidas, maior será a probabilidade de ocorrerem cliques e estalos durante a reprodução. Esse comportamento pode diferir em várias plataformas e pode ocorrer em diversas situações, por exemplo, no redimensionamento do navegador. Você pode gravar o código que funciona em uma plataforma quando fornece somente 2.048 amostras, mas o mesmo código não funcionará tão bem quando for executado em outra plataforma. Se precisar da menor latência possível, pense na possibilidade de tornar o volume de dados selecionável para o usuário.
Se você fornecer menos de 2.048 amostras, o objeto Sound reproduzirá as amostras restantes e interromperá o som como se tivesse atingido o final de um arquivo de som, gerando um evento complete
.
Você pode usar o método extracto()
de um objeto Som para extrair os seus dados de som e, desse modo, gravar à corrente dinâmica da reprodução de gravação.
Quando você usa o evento sampleData
com um objeto Sound, os únicos métodos Sound ativados são extract()
e play()
. Chamar qualquer outro método ou propriedade resultará em uma exceção de "chamada inválida". Todos os métodos e propriedades do objeto SoundChannel continuam ativados.
Capturando áudio de Microfone Use o evento sampleData
para capturar dados áudio de um microfone. Quando você adiciona um ouvinte de eventos ao evento sampleData
, o Microfone despacha o evento conforme as amostras de áudio ficam disponíveis.
Na função de treinador de evento, use o método ByteArray.readFloat()
para ler a propriedade dados
) do evento, que contém os dados escolhidos. O evento conterá múltiplas amostras, portanto você deve usar um loop enquanto
para ler os dados disponíveis:
var soundBytes:ByteArray = new ByteArray(); while(event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); soundBytes.writeFloat(sample); }
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
bubbles : Boolean [somente leitura]
Indica se um evento é do tipo bubbling. | Event | ||
cancelable : Boolean [somente leitura]
Indica se o comportamento associado ao evento pode ser impedido. | Event | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
currentTarget : Object [somente leitura]
O objeto que está processando ativamente o objeto Event com um ouvinte de evento. | Event | ||
data : ByteArray
Os dados do fluxo de áudio. | SampleDataEvent | ||
eventPhase : uint [somente leitura]
A fase atual no fluxo de eventos. | Event | ||
position : Number
A posição dos dados no fluxo de áudio. | SampleDataEvent | ||
target : Object [somente leitura]
O destino de evento. | Event | ||
type : String [somente leitura]
O tipo de evento. | Event |
Método | Definido por | ||
---|---|---|---|
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Cria um objeto de evento que contém informações sobre eventos de dados de áudio. | SampleDataEvent | ||
[substituir]
Cria uma cópia do objeto SampleDataEvent e define o valor de cada propriedade para corresponder ao valor do original. | SampleDataEvent | ||
Uma função de utilitário para implementar o método toString() em classes ActionScript 3.0 Event personalizadas. | Event | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Verifica se o método preventDefault() foi chamado no evento. | Event | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Cancela um comportamento padrão de evento se esse comportamento puder ser cancelado. | Event | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Impede o processamento de qualquer ouvinte de evento no nó atual e qualquer nó subsequente no fluxo de eventos. | Event | ||
Impede o processamento de algum ouvinte de evento em nós subsequentes ao nó atual no fluxo de eventos. | Event | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
[substituir]
Retorna uma string que contém todas as propriedades do objeto SampleDataEvent. | SampleDataEvent | ||
Retorna o valor primitivo do objeto especificado. | Object |
Constante | Definido por | ||
---|---|---|---|
SAMPLE_DATA : String = "sampleData" [estático]
Define o valor da propriedade de tipo de um objeto de evento SampleDataEvent. | SampleDataEvent |
data | propriedade |
position | propriedade |
SampleDataEvent | () | Construtor |
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Cria um objeto de evento que contém informações sobre eventos de dados de áudio. Objetos Event são transmitidos como parâmetros para ouvintes de eventos.
Parâmetrostype:String — O tipo de evento. Esse valor é:Event.SAMPLE_DATA .
| |
bubbles:Boolean (default = false ) — Determina se o objeto Event participa do estágio de bubbling do fluxo de eventos.
| |
cancelable:Boolean (default = false ) — Determina se o objeto Event pode ser cancelado.
| |
theposition:Number (default = 0 ) — A posição dos dados no fluxo de áudio.
| |
thedata:ByteArray (default = null ) — Uma matriz de bytes de dados.
|
clone | () | método |
override public function clone():Event
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Cria uma cópia do objeto SampleDataEvent e define o valor de cada propriedade para corresponder ao valor do original.
RetornaEvent — Um novo objeto SampleDataEvent com valores de propriedade que correspondem aos do original.
|
toString | () | método |
override public function toString():String
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Retorna uma string que contém todas as propriedades do objeto SampleDataEvent. A string está no seguinte formato:
[SampleDataEvent type=value bubbles=value cancelable=value theposition=value thedata=value]
String — Uma string que contém todas as propriedades do objeto SampleDataEvent .
|
SAMPLE_DATA | Constante |
public static const SAMPLE_DATA:String = "sampleData"
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Define o valor da propriedade type
de um objeto de evento SampleDataEvent
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
position | O ponto a partir do qual os dados de áudio são fornecidos. |
Elementos da API relacionados
var mySound:Sound = new Sound(); function sineWaveGenerator(event:SampleDataEvent):void { for ( var c:int=0; c<8192; c++ ) { event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); } } mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator); mySound.play();
Wed Jun 13 2018, 11:10 AM Z