Pacote | flash.media |
Classe | public final class Microphone |
Herança | Microphone EventDispatcher Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Para obter acesso ao microfone do dispositivo, use o método Microphone.getMicrophone()
. No entanto, esse método retorna um microfone simples, que não tem consegue eliminar o eco acústico. Para eliminar o eco acústico, é necessário obter uma ocorrência do microfone por meio do método Microphone.getEnhancedMicrophone()
. Este método retorna um microfone de dispositivo que possui um recurso de eliminação do eco acústico ativado para dispositivos móveis. Use o cancelamento do eco acústico para criar aplicativos áudio/vídeo em tempo real que não necessitam fones de ouvido.
Crie um aplicativo de conversa em tempo real
Para criar um aplicativo de conversa em tempo real, capture o áudio e envie-o a Flash Media Server. Use as classes NetConnection e NetStream para transmitir o fluxo de áudio para o Flash Media Server. Flash Media Server pode transmitir o áudio a outros clientes. Para criar um aplicativo de conversa que não necessita fones de ouvido, use o cancelamento do eco acústico. O cancelamento do eco acústico previne a repetição de feedback que ocorre quando o áudio insere um microfone, viagens fora os falantes, e insere o microfone novamente. Para usar o cancelamento do eco acústico, chame o Microphone.getEnhancedMicrophone()
método para obter uma referência a uma instância de Microfone. Jogo Microphone.enhancedOptions
a uma ocorrência do MicrophoneEnhancedOptions
classe para configurar configurações.
Áudio de microfone de jogo localmente
Chame o método setLoopback()
para rotear o áudio do microfone diretamente para a saída de áudio do computador ou do dispositivo local. O retorno do áudio não controlado representa um perigo inerente e provavelmente ocorrerá sempre que a saída de áudio puder ser captada pela entrada do microfone. O método setUseEchoSuppression()
pode reduzir, mas não eliminar, o risco da amplificação do retorno.
Áudio de microfone de captura de local registrar ou processar
Para capturar o áudio do microfone, ouça os eventos sampleData
despachados por uma instância de Microphone. O objeto SampleDataEvent despachado para este evento contém os dados de áudio.
Para obter informações sobre a captura de vídeo, consulte a classe Camera.
Suporte ao microfone em tempo de execução
Não há suporte à classe Microphone no Flash Player em execução em um navegador móvel.
Suporte a perfil do AIR: A classe Microphone é compatível com sistemas operacionais para desktop, e dispositivos móveis iOS e Android. Não é compatível com dispositivos AIR for TV. Consulte Suporte a perfil do AIR para obter mais informações sobre o suporte de API através de múltiplos perfis.
Você pode testar o suporte no tempo de execução usando a propriedade Microphone.isSupported
. Observe que, para dispositivos AIR for TV, Microphone.isSupported
é true
, mas Microphone.getMicrophone()
sempre retorna null
.
Controles de privacidade
O Flash Player exibe a caixa de diálogo Privacidade, que permite ao usuário optar entre permitir ou negar acesso ao microfone. O tamanho da janela do aplicativo deve ter pelo menos 215 x 138 pixels, o tamanho mínimo necessário para exibir a caixa de diálogo, ou o acesso será automaticamente negado.
O conteúdo em execução na área de segurança do aplicativo AIR não precisa da permissão para acessar o microfone e nenhuma caixa de diálogo é exibida. O conteúdo do AIR em execução fora da área de segurança do aplicativo requer permissão e a caixa de diálogo Privacidade é exibida.
Saiba mais
Cristophe Coenraets: notas de Voz de Android
Michael Chaize: AIR, Android e o Microfone
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
activityLevel : Number [somente leitura]
A quantidade de som que o microfone está detectando. | Microphone | ||
codec : String
O codec a ser usado para compactar o áudio. | Microphone | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
enableVAD : Boolean
Habilitar a detecção de atividade de voz Speex. | Microphone | ||
encodeQuality : int
A qualidade de fala codificada ao usar o codec Speex. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Controla as opções do microfone avançado. | Microphone | ||
framesPerPacket : int
Número de quadros de fala Speex transmitidos em um pacote (mensagem). | Microphone | ||
gain : Number
O valor pelo qual o microfone emite o sinal. | Microphone | ||
index : int [somente leitura]
O índice do microfone, refletido na matriz retornada por Microphone.names. | Microphone | ||
isSupported : Boolean [estático] [somente leitura]
A propriedade isSupported será definida como true se a classe Microphone for suportada na plataforma atual; de outra maneira, ela será definida como false. | Microphone | ||
muted : Boolean [somente leitura]
Especifica se o usuário tem acesso negado ao microfone (verdadeiro) ou acesso permitido (falso). | Microphone | ||
name : String [somente leitura]
O nome do dispositivo atual de captura de som, retornado pelo hardware de captura de som. | Microphone | ||
names : Array [estático] [somente leitura]
Uma matriz de strings contendo os nomes de todos os dispositivos de captura de som disponíveis. | Microphone | ||
noiseSuppressionLevel : int
A atenuação máxima do ruído em dB (número negativo) usada para o codificador Speex. | Microphone | ||
permissionStatus : String [estático] [somente leitura]
Determina se o aplicativo recebeu permissão para acessar o microfone. | Microphone | ||
rate : int
A taxa na qual o microfone captura som, em kHz. | Microphone | ||
silenceLevel : Number [somente leitura]
A quantidade de som necessária para ativar o microfone e despachar o evento de atividade. | Microphone | ||
silenceTimeout : int [somente leitura]
O número de milésimos de segundo entre o momento em que o microfone para de detectar o som e o momento em que o evento de atividade é despachado. | Microphone | ||
soundTransform : flash.media:SoundTransform
Controla o som deste objeto de microfone quando no modo de loopback. | Microphone | ||
useEchoSuppression : Boolean [somente leitura]
Defina como true se a supressão de eco estiver ativada; caso contrário, defina como false. | Microphone |
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 | ||
[estático]
Retorna uma referência a um objeto Microphone aprimorado que pode executar o cancelamento do eco acústico. | Microphone | ||
[estático]
Retorna uma referência a um objeto Microphone para captura de áudio. | Microphone | ||
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 | ||
Solicita a permissão do microfone para o aplicativo. | Microphone | ||
Direciona o áudio capturado por um microfone até os alto-falantes locais. | Microphone | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Define o nível de entrada mínimo que deve ser considerado como som e (opcionalmente) o período de tempo em silêncio, significando que o silêncio realmente começou. | Microphone | ||
Especifica se o recurso de supressão de eco do codec de áudio deve ou não ser usado. | Microphone | ||
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 |
activityLevel | propriedade |
activityLevel:Number
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
A quantidade de som que o microfone está detectando. Os valores variam de 0 (não é detectado som) a 100 (é detectado um som muito alto). O valor dessa propriedade pode ajudá-lo a determinar um bom valor para transmitir para o método Microphone.setSilenceLevel()
.
Se a propriedade de microfone mute
for true
, o valor dessa propriedade será sempre -1.
Implementação
public function get activityLevel():Number
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
codec | propriedade |
codec:String
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
O codec a ser usado para compactar o áudio. Os codecs disponíveis são Nellymoser (o padrão) e Speex. A classe de enumeração SoundCodec
contém os vários valores que são válidos para a propriedade codec
.
Se você usar o codec Nellymoser, poderá estabelecer a utilização de taxa de amostra Microphone.rate()
. Se você usar o codec Speex, a taxa de amostra será definida como 16 kHz.
Speex inclui a detecção de atividade de voz (VAD) e automaticamente reduz a largura de banda quando nenhuma voz é descoberta. Ao usar o codec Speex, a Adobe recomenda que você estabeleça o nível de silêncio como 0. Para definir o nível de silêncio, use o método Microphone.setSilenceLevel()
.
Implementação
public function get codec():String
public function set codec(value:String):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
enableVAD | propriedade |
enableVAD:Boolean
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.1, AIR 2 |
Habilitar a detecção de atividade de voz Speex.
Implementação
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
encodeQuality | propriedade |
encodeQuality:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
A qualidade de fala codificada ao usar o codec Speex. Os possíveis valores são de 0 a 10. O valor padrão é 6. Números maiores representam maior qualidade, mas requerem mais largura de banda, como mostra a tabela a seguir. Os valores de taxa de bits relacionados representam as taxas de bits líquidas e não incluem sobrecarga de empacotamento.
Valor de qualidade | Taxa de bits necessária (quilobits por segundo) |
---|---|
0 | 3,95 |
1 | 5,75 |
2 | 7,75 |
3 | 9,80 |
4 | 12,8 |
5 | 16,8 |
6 | 20,6 |
7 | 23,8 |
8 | 27,8 |
9 | 34,2 |
10 | 42,2 |
Implementação
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
enhancedOptions | propriedade |
enhancedOptions:MicrophoneEnhancedOptions
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.3, AIR 2.7 |
Controla as opções do microfone avançado. Para obter mais informações, consulte a classe MicrophoneEnhancedOptions
. Esta propriedade é ignorada para instâncias de Microfone não realçadas.
Implementação
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
framesPerPacket | propriedade |
framesPerPacket:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10, AIR 1.5 |
Número de quadros de fala Speex transmitidos em um pacote (mensagem). Cada quadro tem 20 ms. O valor padrão são dois quadros por pacote.
Quanto mais quadros de Speex houver em uma mensagem, menor será a largura de banda exigida e maior será a demora no envio da mensagem. Quanto menos quadros de Speex houver, maior será a largura de banda exigida, mas reduzirá a demora.
Implementação
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | propriedade |
gain:Number
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
O valor pelo qual o microfone emite o sinal. Os valores válidos são 0 a 100. O valor padrão é 50.
Implementação
public function get gain():Number
public function set gain(value:Number):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
index | propriedade |
index:int
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
O índice do microfone, refletido na matriz retornada por Microphone.names
.
Implementação
public function get index():int
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
isSupported | propriedade |
isSupported:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.1, AIR 2 |
A propriedade isSupported
será definida como true
se a classe Camera for suportada na plataforma atual; de outra maneira, ela será definida como false
.
Implementação
public static function get isSupported():Boolean
muted | propriedade |
muted:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Especifica se o usuário tem acesso negado ao microfone (true
) ou acesso permitido (false
). Quando esse valor for alterado, é despachado um evento status
. Para obter mais informações, consulte Microphone.getMicrophone()
.
Implementação
public function get muted():Boolean
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
name | propriedade |
names | propriedade |
names:Array
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Uma matriz de strings contendo os nomes de todos os dispositivos de captura de som disponíveis. Os nomes são retornados sem precisar exibir o painel Configurações de Privacidade do Flash Player ao usuário. Essa matriz fornece o índice baseado em zero de cada dispositivo de captura de som e o número de dispositivos no sistema, através da propriedade Microphone.names.length
. Para obter mais informações, consulte a entrada da classe Array.
A chamada a Microphone.names
exige um exame extensivo do hardware, e pode levar vários segundos para construir a matriz. Na maioria dos casos, você pode apenas usar o microfone padrão.
Observação: para determinar o nome do microfone atual, use a propriedade name
.
Implementação
public static function get names():Array
Elementos da API relacionados
noiseSuppressionLevel | propriedade |
noiseSuppressionLevel:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.1, AIR 2 |
A atenuação máxima do ruído em dB (número negativo) usada para o codificador Speex. Se ativada, a supressão de barulho será aplicada ao som capturado do Microfone antes da compactação de Speex. Define como 0 para inutilizar a supressão de barulho. A supressão de barulho é ativada por padrão com a atenuação máxima de -30 dB. Ignorado quando o codec Nellymoser for selecionado.
Implementação
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
permissionStatus | propriedade |
rate | propriedade |
rate:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
A taxa na qual o microfone captura som, em kHz. Os valores aceitáveis são 5, 8, 11, 22 e 44. O valor padrão é 8 kHz se o seu dispositivo de captura de som oferece esse valor. Do contrário, o valor padrão é o próximo nível de captura disponível acima de 8 kHz que o seu dispositivo de captura de som suporta, em geral 11 kHz.
Observação: A taxa real diferencia-se ligeiramente do valor taxa
, como observado na seguinte tabela:
taxa valor | Frequência real |
---|---|
44 | 44,100 Hz |
22 | 22,050 Hz |
11 | 11,025 Hz |
8 | 8,000 Hz |
5 | 5,512 Hz |
Implementação
public function get rate():int
public function set rate(value:int):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
silenceLevel | propriedade |
silenceLevel:Number
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
A quantidade de som necessária para ativar o microfone e despachar o evento activity
. O valor padrão é 10.
Implementação
public function get silenceLevel():Number
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
silenceTimeout | propriedade |
silenceTimeout:int
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
O número de milésimos de segundo entre o momento em que o microfone para de detectar o som e o momento em que o evento activity
é despachado. O valor padrão é de 2000 (2 segundos).
Para configurar esse valor, use o método Microphone.setSilenceLevel()
.
Implementação
public function get silenceTimeout():int
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
soundTransform | propriedade |
soundTransform:flash.media:SoundTransform
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Controla o som deste objeto de microfone quando no modo de loopback.
Implementação
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
useEchoSuppression | propriedade |
useEchoSuppression:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Defina como true
se a supressão de eco estiver ativada; caso contrário, defina como false
. O valor padrão é false
, a menos que o usuário tenho selecionado Reduzir eco no painel de Configurações do Microsoft do Flash Player.
Implementação
public function get useEchoSuppression():Boolean
Elementos da API relacionados
getEnhancedMicrophone | () | método |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 10.3, AIR 2.7 |
Retorna uma referência a um objeto Microphone aprimorado que pode executar o cancelamento do eco acústico. Use o cancelamento do eco acústico para criar aplicativos de bate-papo de áudio/vídeo que não requeiram fones de ouvido.
O parâmetro index
do método Microphone.getEnhancedMicrophone()
e o método Microphone.getMicrophone()
funcionam da mesma maneira.
Para usar esse método no Android, adicione a permissão MODIFY_AUDIO_SETTINGS
de MODIFY_AUDIO_SETTINGS nas adições de manifesto do descritor do aplicativo.
Importante: A qualquer momento você pode ter dispositivo de microfone realçado de só uma ocorrência de única. Todas as outras ocorrências de Microphone deixarão de fornecer dados de áudio e receberão um StatusEvent
com a propriedade code
Microphone.Unavailable
. Quando o áudio realçado falha inicializar, chamadas a deste retorno de método null
, configuração de um valor para Microphone.enhancedOptions
não tem nenhum efeito, e toda a função de instâncias de Microfone existente como antes.
Para configurar um objeto de Microfone realçado, estabeleça o Microphone.enhancedOptions
propriedade. O seguinte código usa um objeto de Microfone realçado e cancelamento do eco acústico cheio e dúplex em um teste local:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
O método setUseEchoSuppression()
é ignorado quando o cancelamento do eco acústico é usado.
Quando um arquivo SWF tenta acessar o objeto retornado por Microphone.getEnhancedMicrophone()
– por exemplo, ao chamar NetStream.attachAudio()
– o Flash Player exibe uma caixa de diálogo Privacidade que permite que o usuário escolha entre permitir ou negar acesso ao microfone. (O tamanho do Palco tem, pelo menos, 215 x 138 pixels; este é o tamanho mínimo que o Flash Player exige para que a caixa de diálogo seja exibida.)
Parâmetros
index:int (default = -1 ) — O valor de índice do microfone.
|
Microphone — Uma referência a um objeto Microphone para captura de áudio. Se o áudio realçado falha inicializar, retornos null .
|
Elementos da API relacionados
getMicrophone | () | método |
public static function getMicrophone(index:int = -1):Microphone
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Retorna uma referência a um objeto Microphone para captura de áudio. Para iniciar a captura do áudio, você deve acoplar o objeto Microphone a um objeto NetStream (consulte NetStream.attachAudio()
).
Chamadas múltiplas a Microphone.getMicrophone()
fazem referência ao mesmo microfone. Se o seu código contiver as linhas mic1 = Microphone.getMicrophone()
e mic2 = Microphone.getMicrophone()
, tanto mic1
quanto mic2
farão referência ao mesmo microfone (padrão).
Em geral, você não deve um valor para index
. Basta chamar air.Microphone.getMicrophone()
para retornar uma referência ao microfone padrão. Ao usar a seção de Configurações de Microfone no painel de configurações do Flash Player, o usuário pode especificar o microfone padrão que o aplicativo deve usar. (O usuário acessa o painel de configurações de Flash Player clicando com o botão direito do mouse no conteúdo do Flash Playerexecutado em um navegador da web.) Se você passar um valor para index
, pode fazer referência a um microfone diferente daquele que o usuário escolher. Você pode usar index
em casos raros – por exemplo, se o seu aplicativo estiver capturando áudio de dois microfones ao mesmo tempo. O conteúdo executado no Adobe AIR também usa a configuração do Flash Player para o microfone padrão.
Use a propriedade Microphone.index
para obter o valor de índice do objeto Microphone atual. Você pode passar esse valor para outros métodos da classe Microphone.
Quando um arquivo SWF tenta acessar o objeto retornado por Microphone.getMicrophone()
– por exemplo, ao chamar NetStream.attachAudio()
– o Flash Player exibe uma caixa de diálogo Privacidade que permite que o usuário escolha entre permitir ou negar acesso ao microfone. (O tamanho do Palco tem, pelo menos, 215 x 138 pixels; este é o tamanho mínimo que o Flash Player exige para que a caixa de diálogo seja exibida.)
Quando o usuário responder a esta caixa de diálogo, é despachado um evento status
que indica a resposta do usuário. Você também pode verificar a propriedade Microphone.muted
para determinar se o usuário permitiu ou negou acesso ao microfone.
Se Microphone.getMicrophone()
retornar null
, o microfone está sendo usado por outro aplicativo, ou não há microfones instalados no sistema. Para determinar se há microfones instalados, use Microphones.names.length
. Para exibir o painel Configurações do Microfone do Flash Player, que permite que o usuário escolha o microfone ao qual Microphone.getMicrophone
faz referência, use Security.showSettings()
.
Parâmetros
index:int (default = -1 ) — O valor de índice do microfone.
|
Microphone — Uma referência a um objeto Microphone para captura de áudio.
|
Eventos
status: — Despachado quando um microfone relata seu status. Se o valor da propriedade code for "Microphone.Muted" , o usuário se recusou a permitir o acesso do arquivo SWF ao microfone do usuário. Se o valor da propriedade code for "Microphone.Unmuted" , o usuário permitiu o acesso do arquivo SWF ao microfone do usuário.
|
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
var mic:Microphone = Microphone.getMicrophone(); mic.setLoopBack(); mic.addEventListener(StatusEvent.STATUS, mic_status); var tf:TextField = new TextField(); tf.autoSize = TextFieldAutoSize.LEFT; tf.text = "Detecting microphone..."; addChild(tf); function mic_status(evt:StatusEvent):void { tf.text = "Microphone is muted?: " + mic.muted; switch (evt.code) { case "Microphone.Unmuted": tf.appendText("\n" + "Microphone access was allowed."); break; case "Microphone.Muted": tf.appendText("\n" + "Microphone access was denied."); break; } }
requestPermission | () | método |
public function requestPermission():void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 24.0 |
Solicita a permissão do microfone para o aplicativo.
Eventos
PermissionStatus: — despachado quando a permissão solicitada é concedida/negada pelo usuário.
|
setLoopBack | () | método |
public function setLoopBack(state:Boolean = true):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Direciona o áudio capturado por um microfone até os alto-falantes locais.
Parâmetros
state:Boolean (default = true )
|
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
setSilenceLevel | () | método |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Define o nível de entrada mínimo que deve ser considerado como som e (opcionalmente) o período de tempo em silêncio, significando que o silêncio realmente começou.
- Para impedir que o microfone detecte qualquer tipo de som, transmita o valor de 100 para
silenceLevel
; o eventoactivity
nunca é despachado. - Para determinar a quantidade de som que o microfone está detectando no momento, use a propriedade
Microphone.activityLevel
.
Speex inclui a detecção de atividade de voz (VAD) e automaticamente reduz a largura de banda quando nenhuma voz é descoberta. Ao usar o codec Speex, a Adobe recomenda que você estabeleça o nível de silêncio como 0.
A detecção de atividade é a capacidade de detectar quando os níveis de áudio sugerem que há uma pessoa falando. Quando não há ninguém falando, a largura de banda pode ser salva, já que não há necessidade de enviar o fluxo de áudio associado. Essas informações também podem ser usadas para obter um feedback visual de forma que os usuários saibam que eles (ou outras pessoas) estão em silêncio.
Os valores de silêncio correspondem diretamente aos valores de atividade. O silêncio completo é um valor de atividade 0. O ruído alto constante (tão altos quanto pode ser registrado com base na configuração atual de ganho) é um valor de atividade 100. Depois que o ganho é adequadamente ajustado, o valor da sua atividade é menor do que o valor de silêncio quando você não está falando; quando você está falando, o valor da atividade excede o valor de silêncio.
Esse método é semelhante ao Camera.setMotionLevel()
; os dois são usados para especificar quando o evento activity
for despachado. No entanto, esses métodos têm um impacto significativamente diferente nos fluxos de publicação:
Camera.setMotionLevel()
foi projetado para detectar movimento e não afeta a utilização da largura de banda. Mesmo que um fluxo de vídeo não detecte movimento, o vídeo ainda é enviado.Microphone.setSilenceLevel()
foi projetado para otimizar a largura de banda. Quando um fluxo de áudio é considerado silencioso, não são enviados dados de áudio. Em vez disso, é enviada uma única mensagem, indicando que o silêncio iniciou.
Parâmetros
silenceLevel:Number — A quantidade de som necessária para ativar o microfone e despachar o evento activity . A faixa de valores aceitável varia de 0 a 100.
| |
timeout:int (default = -1 ) — O número de milissegundos que deve transcorrer sem atividade antes que o Flash Player ou o Adobe AIR considere que o som deve ser interrompido e despache o evento dispatch . O valor padrão é de 2000 (2 segundos). (Observação: o valor padrão mostrado na assinatura, -1, é um valor interno que indica para o Flash Player ou para o Adobe AIR usar o 2000.)
|
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
setUseEchoSuppression | () | método |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0, Flash Player 9 |
Especifica se o recurso de supressão de eco do codec de áudio deve ou não ser usado. O valor padrão é false
, a menos que o usuário tenho selecionado Reduzir eco no painel de Configurações do Microsoft do Flash Player.
A supressão de eco é um esforço para reduzir os efeitos do feedback de áudio, que é causado quando o som que sai do alto-falante é selecionado pelo microfone no mesmo sistema. (É diferente do cancelamento do eco acústico, que remove completamente o retorno. O método setUseEchoSuppression()
é ignorado quando você chama o método getEnhancedMicrophone()
para usar o cancelamento do eco acústico.)
Em geral, a supressão do eco é aconselhável quando o som que está sendo capturado é reproduzido pelos alto-falantes – em vez de um fone –. Se o arquivo SWF permite que os usuários especifiquem o dispositivo de saída do som, talvez você queira chamar Microphone.setUseEchoSuppression(true)
se indicarem que estão usando alto-falantes e também vão usar o microfone.
Os usuários também podem ajustar essas configurações no painel Configurações do Microsoft do Flash Player.
Parâmetros
useEchoSuppression:Boolean — Um Valor booliano que indica se é preciso usar supressão de eco (true ) ou não (false ).
|
Lança
PermissionError — O aplicativo não tem permissão para usar o microfone.
|
Elementos da API relacionados
Security.showSettings()
exibe a caixa de diálogo do Flash Player, que solicita a permissão para acessar o microfone do usuário. A chamada a setLoopBack(true)
redireciona a entrada ao alto-falante local, por isso você pode ouvir o som enquanto você executa o exemplo.
Dois ouvintes ouvem os eventos activity
e status
. O evento activity
foi despachado no início e no final (se houver) da sessão e foi capturado pelo método activityHandler()
, que controla as informações sobre o evento. O evento status
é despachado se o objeto Microphone anexado informa quaisquer informações de status; ele é capturado e controlado com o método statusHandler()
.
Observação: é necessário acoplar um microfone ao seu computador para que este exemplo funcione corretamente.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Microphone; import flash.system.Security; public class MicrophoneExample extends Sprite { public function MicrophoneExample() { var mic:Microphone = Microphone.getMicrophone(); Security.showSettings("2"); mic.setLoopBack(true); if (mic != null) { mic.setUseEchoSuppression(true); mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler); mic.addEventListener(StatusEvent.STATUS, statusHandler); } } private function activityHandler(event:ActivityEvent):void { trace("activityHandler: " + event); } private function statusHandler(event:StatusEvent):void { trace("statusHandler: " + event); } } }
Wed Jun 13 2018, 11:10 AM Z