Paquete | flash.media |
Clase | public final class Microphone |
Herencia | Microphone EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Para obtener acceso al micrófono del dispositivo, puede utilizar el método Microphone.getMicrophone()
. Sin embargo, este método devuelve un micrófono simple, que no tiene la capacidad de eliminación de eco acústico. Para eliminar el eco acústico, debe obtener una instancia del micrófono con el método Microphone.getEnhancedMicrophone()
. Este método devuelve un micrófono del dispositivo que tiene la función de cancelación de eco acústico activada para móvil. Utilice cancelación de eco acústico para crear aplicaciones de vídeo/audio en tiempo real que no requieren auriculares.
Creación de una aplicación de chat en tiempo real
Para crear una aplicación de chat en tiempo real, capture audio y envíelo a Flash Media Server. Utilice las clases NetConnection y NetStream para enviar la transmisión de audio a Flash Media Server. Flash Media Server puede transmitir el audio a otros clientes. Para crear una aplicación de chat que no requiera auriculares, utilice cancelación de eco acústico. La cancelación de eco acústico impide que el circuito de retroalimentación que se produce cuando el audio introduce un micrófono salga por los altavoces y vuelva a introducirse en el micrófono. Para utilizar la cancelación de eco acústico, llame al método Microphone.getEnhancedMicrophone()
para obtener una referencia a una instancia de Microphone. Establezca Microphone.enhancedOptions
como una instancia de la clase MicrophoneEnhancedOptions
para configurar los ajustes.
Reproducción de audio de micrófono localmente
Llame al método setLoopback()
de Microphone para dirigir el audio de micrófono directamente a la salida de audio del dispositivo o del equipo local. Los comentarios incontrolados de audio son un peligro inherente y es probable que se produzcan cuando la salida de audio se puede captar con la entrada para el micrófono. El método setUseEchoSuppression()
puede reducir, pero no eliminar, el riesgo de amplificación de retroalimentación.
Captura de audio local de micrófono para grabación o procesamiento
Para capturar audio de micrófono, detecte eventos sampleData
distribuidos por una instancia de Microphone. El objeto SampleDataEvent distribuido para este evento contiene los datos de audio.
Para información sobre la captura de vídeo, consulte la clase Camera.
Soporte de micrófono en motor de ejecución
La clase Microphone no se admite en Flash Player cuando se ejecuta en un navegador móvil.
Compatibilidad con perfil de AIR: la clase Microphone se admite en sistemas operativos de escritorio y en dispositivos móviles que utilicen iOS o Android. No se admite en dispositivos de AIR para TV. Consulte Compatibilidad con perfil de AIR para obtener información sobre la compatibilidad de la API con varios perfiles.
Puede comprobar la compatibilidad en tiempo de ejecución mediante la propiedad Microphone.isSupported
. Hay que tener en cuenta que en dispositivos de AIR para TV, Microphone.isSupported
es true
pero Microphone.getMicrophone()
siempre devuelve null
.
Controles de privacidad
Flash Player muestra un cuadro de diálogo de Privacidad que permite al usuario decidir si autoriza o deniega el acceso al micrófono. El tamaño de la ventana de la aplicación debe ser al menos de 215 x 138 píxeles, el tamaño mínimo necesario para mostrar el cuadro de diálogo; en caso contrario, se deniega el acceso automáticamente.
El contenido que se ejecuta en el entorno limitado de la aplicación de AIR no necesita permiso para acceder al micrófono y no se muestra ningún cuadro de diálogo. El contenido de AIR que se ejecuta fuera del entorno limitado de la aplicación no necesita permiso y sí se muestra el cuadro de diálogo Privacidad.
Más información
Cristophe Coenraets: Notas de voz para Android
Michael Chaize: AIR, Android y el micrófono
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
activityLevel : Number [solo lectura]
La cantidad de sonido detectada por el micrófono. | Microphone | ||
codec : String
El códec utilizado para comprimir audio. | Microphone | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
enableVAD : Boolean
Activa la detección de actividad de voz Speex. | Microphone | ||
encodeQuality : int
La calidad de la voz codificada cuando se utiliza el códec Speex. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Controla las opciones mejoradas de micrófono. | Microphone | ||
framesPerPacket : int
Número de fotogramas de voz de Speex transmitidos en un paquete (mensaje). | Microphone | ||
gain : Number
Cantidad que el micrófono aumenta la señal. | Microphone | ||
index : int [solo lectura]
El índice del micrófono, tal como se refleja en el conjunto devuelto por Microphone.names. | Microphone | ||
isSupported : Boolean [estática] [solo lectura]
La propiedad isSupported se establece en true si la clase Microphone se admite en la plataforma actual; en caso contrario, se establece en false. | Microphone | ||
muted : Boolean [solo lectura]
Especifica si el usuario ha denegado el acceso al micrófono (true) o lo ha autorizado (false). | Microphone | ||
name : String [solo lectura]
El nombre del dispositivo de captura de sonido, tal y como lo ha devuelto el hardware de captura de sonido. | Microphone | ||
names : Array [estática] [solo lectura]
Un conjunto de cadenas que incluye los nombres de todos los dispositivos de captura de sonido disponibles. | Microphone | ||
noiseSuppressionLevel : int
Atenuación máxima del ruido en dB (número negativo) que se utiliza en el codificador Speex. | Microphone | ||
permissionStatus : String [estática] [solo lectura]
Determine si se le ha concedido a la aplicación el permiso para usar el micrófono. | Microphone | ||
rate : int
La frecuencia a la que el micrófono captura el sonido, expresada en kHz. | Microphone | ||
silenceLevel : Number [solo lectura]
La cantidad de sonido requerida para activar el micrófono y distribuir el evento activity. | Microphone | ||
silenceTimeout : int [solo lectura]
Número de milisegundos que transcurren entre el momento en que el micrófono deja de detectar sonido y la distribución del evento activity. | Microphone | ||
soundTransform : flash.media:SoundTransform
Controla el sonido de este objeto de micrófono cuando se encuentra en modo de bucle. | Microphone | ||
useEchoSuppression : Boolean [solo lectura]
Se establece en true si está activada la supresión de eco; en caso contrario, devuelve false. | Microphone |
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 | ||
[estática]
Devuelve una referencia a un objeto Microphone mejorado que puede realizar cancelación de eco acústico. | Microphone | ||
[estática]
Devuelve una referencia a un objeto Microphone para capturar sonido. | Microphone | ||
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 | ||
Solicita el acceso de micrófono para la aplicación. | Microphone | ||
Dirige el audio capturado por un micrófono a los altavoces locales. | Microphone | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Establece el nivel mínimo de la entrada que debe considerarse como sonido y (opcionalmente) el tiempo de silencio que indica que efectivamente ha comenzado el silencio. | Microphone | ||
Especifica si debe utilizarse la función de supresión de eco del códec de audio. | Microphone | ||
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 |
activityLevel | propiedad |
activityLevel:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
La cantidad de sonido detectada por el micrófono. El rango de valores válidos es de 0 (no se detecta sonido) a 100 (se detecta un sonido alto). El valor de esta propiedad permite determinar un valor adecuado para el método Microphone.setSilenceLevel()
.
Si la propiedad muted
del micrófono es true
, el valor de esta propiedad siempre es -1.
Implementación
public function get activityLevel():Number
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
codec | propiedad |
codec:String
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
El códec utilizado para comprimir audio. Hay códecs disponibles de Nellymoser (predeterminado) y de Speex. La clase de enumeración SoundCodec
contiene los distintos valores válidos para la propiedad codec
.
Si utiliza el códec de Nellymoser, puede establecer la frecuencia de muestreo utilizando Microphone.rate()
. Si se utiliza el códec de Speex, la frecuencia de muestreo se establece en 16 kHz.
Speex incluye detección de actividad de voz (VAD) y reduce automáticamente el ancho de banda cuando se detecta ninguna voz. Si se utiliza el códec de Speex, Adobe recomienda establecer el nivel de silencio en 0. Para definir el nivel de silencio, utilice el método Microphone.setSilenceLevel()
.
Implementación
public function get codec():String
public function set codec(value:String):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
enableVAD | propiedad |
enableVAD:Boolean
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Activa la detección de actividad de voz Speex.
Implementación
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
encodeQuality | propiedad |
encodeQuality:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
La calidad de la voz codificada cuando se utiliza el códec Speex. Los valores posibles van de 0 a 10. El valor predeterminado es 6. Si se utiliza un número más elevado, la calidad será más alta, pero se necesitará una ancho de banda mayor, como se muestra en la siguiente tabla. Los valores de velocidad de transferencia enumerados representan las velocidades de transferencia netas y no incluyen la sobrecarga correspondiente a la creación de paquetes.
Valor de calidad | Velocidad de transferencia necesaria (kilobits 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 |
Implementación
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
enhancedOptions | propiedad |
enhancedOptions:MicrophoneEnhancedOptions
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.3, AIR 2.7 |
Controla las opciones mejoradas de micrófono. Para obtener más información, consulte la clase MicrophoneEnhancedOptions
. Esta propiedad se omitirá para instancias de Microphone no mejoradas.
Implementación
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
framesPerPacket | propiedad |
framesPerPacket:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10, AIR 1.5 |
Número de fotogramas de voz de Speex transmitidos en un paquete (mensaje). Cada fotograma tiene una duración de 20 ms. El valor predeterminado es de dos fotogramas por paquete.
Cuando mayor sea el número de fotogramas Speex en un mensaje, menor será el ancho de banda requerido, aunque aumentará el retraso al enviar el mensaje. A menor número de fotogramas Speex, mayor será el ancho de banda requerido, pero se reducirá el retraso.
Implementación
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | propiedad |
gain:Number
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Cantidad que el micrófono aumenta la señal. Los valores válidos van de 0 a 100. El valor predeterminado es 50.
Implementación
public function get gain():Number
public function set gain(value:Number):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
index | propiedad |
index:int
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
El índice del micrófono, tal como se refleja en el conjunto devuelto por Microphone.names
.
Implementación
public function get index():int
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
isSupported | propiedad |
isSupported:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
La propiedad isSupported
se establece en true
si la clase Microphone se admite en la plataforma actual; en caso contrario, se establece en false
.
Implementación
public static function get isSupported():Boolean
muted | propiedad |
muted:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Especifica si el usuario ha denegado el acceso al micrófono (true
) o lo ha autorizado (false
). Cuando cambia este valor, se distribuye un evento status
. Para más información, consulte Microphone.getMicrophone()
.
Implementación
public function get muted():Boolean
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
name | propiedad |
name:String
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
El nombre del dispositivo de captura de sonido, tal y como lo ha devuelto el hardware de captura de sonido.
Implementación
public function get name():String
Elementos de API relacionados
names | propiedad |
names:Array
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Un conjunto de cadenas que incluye los nombres de todos los dispositivos de captura de sonido disponibles. Los nombres se devuelven sin necesidad de mostrar al usuario el panel Configuración de privacidad de Flash Player. Este conjunto proporciona el índice basado en cero de cada dispositivo de captura de sonido y el número de dispositivos de captura de sonido del sistema; lo hace gracias a la propiedad Microphone.names.length
. Para más información, consulte la entrada de la clase Array.
La llamada a Microphone.names
exige un examen amplio del hardware y puede tardar varios segundos en crear el conjunto. En la mayoría de los casos, podrá utilizar simplemente el micrófono predeterminado.
Nota: para determinar el nombre del micrófono actual, utilice la propiedad name
.
Implementación
public static function get names():Array
Elementos de API relacionados
noiseSuppressionLevel | propiedad |
noiseSuppressionLevel:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.1, AIR 2 |
Atenuación máxima del ruido en dB (número negativo) que se utiliza en el codificador Speex. Si está activado, se aplicar supresión de ruido al sonido capturado por el micrófono antes de la compresión de Speex. Establezca el valor en 0 para desactivar supresión de sonido. La supresión de ruido se activa de forma predeterminada con la máxima atenuación de -30 dB. Omitir si el códec de Nellymoser está seleccionado.
Implementación
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
permissionStatus | propiedad |
rate | propiedad |
rate:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
La frecuencia a la que el micrófono captura el sonido, expresada en kHz. Los valores aceptables son 5, 8, 11, 22 y 44. El valor predeterminado es 8 kHz si su dispositivo de captura de sonido admite este valor. En caso contrario, el valor predeterminado será el siguiente nivel de captura disponible por encima de 8 kHz que admita su dispositivo de captura de sonido, generalmente 11 kHz.
Nota: la frecuencia real difiere ligeramente del valor de rate
, como se indica en la siguiente tabla:
Valor de rate | Frecuencia real |
---|---|
44 | 44.100 Hz |
22 | 22.050 Hz |
11 | 11.025 Hz |
8 | 8.000 Hz |
5 | 5.512 Hz |
Implementación
public function get rate():int
public function set rate(value:int):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
silenceLevel | propiedad |
silenceLevel:Number
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
La cantidad de sonido necesaria para activar el micrófono y distribuir el evento activity
. El valor predeterminado es 10.
Implementación
public function get silenceLevel():Number
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
silenceTimeout | propiedad |
silenceTimeout:int
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Número de milisegundos que transcurren entre el momento en que el micrófono deja de detectar sonido y la distribución del evento activity
. El valor predeterminado es 2000 (2 segundos).
Para definir este valor, utilice el método Microphone.setSilenceLevel()
.
Implementación
public function get silenceTimeout():int
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
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 |
Controla el sonido de este objeto de micrófono cuando se encuentra en modo de bucle.
Implementación
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
useEchoSuppression | propiedad |
useEchoSuppression:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Se establece en true
si está activada la supresión de eco; en caso contrario, devuelve false
. El valor predeterminado es false
a no ser que el usuario haya seleccionado la reducción de eco en el panel Configuración del micrófono de Flash Player.
Implementación
public function get useEchoSuppression():Boolean
Elementos de API relacionados
getEnhancedMicrophone | () | método |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 10.3, AIR 2.7 |
Devuelve una referencia a un objeto Microphone mejorado que puede realizar cancelación de eco acústico. Utilice cancelación de eco acústico para crear aplicaciones de chat de vídeo/audio que no requieren auriculares.
El parámetro index
para el método Microphone.getEnhancedMicrophone()
y Microphone.getMicrophone()
funcionan de la misma manera.
Para utilizar este método en Android, agregue el permiso MODIFY_AUDIO_SETTINGS
en la sección de los complementos del manifiesto de Android, en el descriptor de la aplicación.
Importante: en cada momento sólo se puede tener una instancia de dispositivo de micrófono mejorado. Todas las demás instancias de Microphone dejan de suministrar datos de audio y reciben un evento StatusEvent
con la propiedad code
Microphone.Unavailable
. Cuando el audio mejorado falla al inicializar, las llamadas a este método devuelven null
. Establecer un valor para Microphone.enhancedOptions
no produce ningún efecto y todas las instancias de micrófono funcionan como antes.
Para configurar un objeto Microphone mejorado, establezca la propiedad Microphone.enhancedOptions
. El siguiente código utiliza un objeto Microphone mejorado y cancelación de eco acústico full-duplex en una prueba local:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
El método setUseEchoSuppression()
se omite cuando se utiliza cancelación de eco acústico.
Cuando un archivo SWF intenta acceder al objeto devuelto por Microphone.getEnhancedMicrophone()
, por ejemplo, al llamar a NetStream.attachAudio()
, Flash Player muestra un cuadro de diálogo Privacidad que permite al usuario autorizar o denegar el acceso al micrófono. (Asegúrese de que el tamaño del escenario sea de al menos 215 x 138 píxeles; este es el tamaño mínimo que exige Flash Player para mostrar el cuadro de diálogo).
Parámetros
index:int (default = -1 ) — El valor de índice del micrófono.
|
Microphone — Referencia a un objeto Microphone para capturar sonido. Si el audio mejorado falla al inicializar, devuelve null .
|
Elementos de API relacionados
getMicrophone | () | método |
public static function getMicrophone(index:int = -1):Microphone
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Devuelve una referencia a un objeto Microphone para capturar sonido. Para comenzar a capturar audio, debe asociar el objeto Microphone a un objeto NetStream (consulte NetStream.attachAudio()
).
Varias llamadas a Microphone.getMicrophone()
hacen referencia al mismo micrófono. Por consiguiente, si el código contiene las líneas mic1 = Microphone.getMicrophone()
y mic2 = Microphone.getMicrophone()
, tanto mic1
como mic2
harán referencia al mismo micrófono (predeterminado).
Por lo general, no se debe transferir un valor para index
. Simplemente utilice el método air.Microphone.getMicrophone()
para devolver una referencia al micrófono predeterminado. Desde la sección Configuración del micrófono del panel Configuración de Flash Player, el usuario puede especificar el micrófono predeterminado que debe utilizar la aplicación. (El usuario puede acceder al panel Configuración de Flash Player haciendo clic con el botón derecho en el contenido de Flash Player que se ejecuta en un navegador web.) Si transfiere un valor para index
, puede hacer referencia a un micrófono que no es el mismo que elige el usuario. Puede utilizar index
en casos poco frecuentes, por ejemplo, si la aplicación está capturando audio de dos micrófonos a la vez. El contenido ejecutado en Adobe AIR también utiliza la configuración de Flash Player para el micrófono predeterminado.
Utilice la propiedad Microphone.index
para obtener el valor de índice del objeto Microphone actual. A continuación, puede transmitir este valor a los demás métodos de la clase Microphone.
Cuando un archivo SWF intenta acceder al objeto devuelto por Microphone.getMicrophone()
, por ejemplo, al llamar a NetStream.attachAudio()
, Flash Player muestra un cuadro de diálogo Privacidad que permite al usuario autorizar o denegar el acceso al micrófono. (Asegúrese de que el tamaño del escenario sea de al menos 215 x 138 píxeles; este es el tamaño mínimo que exige Flash Player para mostrar el cuadro de diálogo).
Cuando el usuario responde a este cuadro de diálogo, se distribuye un evento status
que indica la respuesta del usuario. También puede comprobar la propiedad Microphone.muted
para determinar si el usuario ha permitido o denegado el acceso al micrófono.
Si Microphone.getMicrophone()
devuelve el valor null
, ello indicará que otra aplicación utiliza el micrófono o que no hay micrófonos instalados en el sistema. Para comprobar si hay micrófonos instalados, utilice Microphones.names.length
. Para ver el panel de configuración del micrófono de Flash Player, en el que el usuario puede elegir el micrófono al que hará referencia Microphone.getMicrophone()
, utilice Security.showSettings()
.
Parámetros
index:int (default = -1 ) — El valor de índice del micrófono.
|
Microphone — Referencia a un objeto Microphone para capturar sonido.
|
Eventos
status: — Se distribuye cuando un micrófono informa sobre su estado. Si el valor de la propiedad code es "Microphone.Muted" , el usuario ha denegado el acceso del archivo SWF al micrófono del usuario. Si el valor de la propiedad code es "Microphone.Unmuted" , el usuario ha permitido el acceso del archivo SWF al micrófono del usuario.
|
Elementos de API relacionados
Ejemplo ( Cómo utilizar este ejemplo )
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
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 24.0 |
Solicita el acceso de micrófono para la aplicación.
Eventos
PermissionStatus: — se distribuye cuando el usuario concede o deniega el permiso solicitado.
|
setLoopBack | () | método |
public function setLoopBack(state:Boolean = true):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Dirige el audio capturado por un micrófono a los altavoces locales.
Parámetros
state:Boolean (default = true )
|
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
setSilenceLevel | () | método |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Establece el nivel mínimo de la entrada que debe considerarse como sonido y (opcionalmente) el tiempo de silencio que indica que efectivamente ha comenzado el silencio.
- Para impedir que el micrófono detecte sonido, transfiera un valor de 100 para
silenceLevel
; el eventoactivity
nunca se distribuirá. - Para determinar la cantidad de sonido que está detectando actualmente el micrófono, utilice
Microphone.activityLevel
.
Speex incluye detección de actividad de voz (VAD) y reduce automáticamente el ancho de banda cuando se detecta ninguna voz. Si se utiliza el códec de Speex, Adobe recomienda establecer el nivel de silencio en 0.
La detección de actividad es la capacidad de detectar cuándo los niveles de audio sugieren que una persona está hablando. Cuando no hay nadie hablando, puede ahorrarse ancho de banda porque no es necesario enviar el flujo de audio asociado. Esta información también se utiliza como información para que los usuarios sepan que ellos (u otras personas) están en silencio.
Los valores de silencio se corresponden directamente con los valores de actividad. El silencio total tiene un valor de actividad 0. El ruido alto y constante (el máximo que puede registrarse con la configuración de ganancia actual) tiene un valor de actividad 100. Una vez ajustada adecuadamente la ganancia, el valor de actividad es inferior al valor de silencio cuando no está hablando; cuando está hablando, el valor de actividad supera el valor de silencio.
Este método es similar a Camera.setMotionLevel()
; ambos métodos se utilizan para especificar cuándo debe distribuirse el evento activity
. No obstante, estos métodos tienen efectos muy distintos en la publicación de flujos:
Camera.setMotionLevel()
está diseñado para detectar movimiento y no afecta al uso del ancho de banda. Aunque un flujo de vídeo no detecte movimiento, el vídeo continúa enviándose.Microphone.setSilenceLevel()
está diseñado para optimizar el ancho de banda. Cuando se considera que un flujo de audio está en silencio, no se envían datos de audio. Por el contrario, se envía un único mensaje que indica que el silencio ha comenzado.
Parámetros
silenceLevel:Number — La cantidad de sonido necesaria para activar el micrófono y distribuir el evento activity . Admite valores comprendidos entre 0 y 100.
| |
timeout:int (default = -1 ) — El número de milisegundos que deben transcurrir sin que exista actividad para que Flash Player o Adobe AIR considere que el sonido se ha detenido y distribuya el evento dispatch . El valor predeterminado es 2000 (2 segundos). (Nota: el valor predeterminado que aparece en la firma (-1) es un valor interno que indica a Flash Player o Adobe AIR que utilice 2000.)
|
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
setUseEchoSuppression | () | método |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 1.0, Flash Player 9 |
Especifica si debe utilizarse la función de supresión de eco del códec de audio. El valor predeterminado es false
a no ser que el usuario haya seleccionado la reducción de eco en el panel Configuración del micrófono de Flash Player.
La supresión del eco es un intento de reducción de los efectos del acoplamiento acústico, que tiene lugar cuando el sonido que sale del altavoz es detectado por el micrófono del mismo sistema. (Esto es diferente a la cancelación del eco acústico, que elimina completamente el acoplamiento.) El método setUseEchoSuppression(
se omite al llamar al método getEnhancedMicrophone()
para utilizar cancelación de eco acústico.)
Por lo general, la supresión del eco es aconsejable cuando el sonido que se está capturando se reproduce a través de los altavoces (en lugar de a través de auriculares). Si el archivo SWF permite a los usuarios especificar el dispositivo de salida del sonido, puede que resulte conveniente llamar a Microphone.setUseEchoSuppression(true)
si éstos indican que están utilizando altavoces y van a utilizar también el micrófono.
Los usuarios también pueden ajustar estos parámetros en el panel de configuración del micrófono de Flash Player.
Parámetros
useEchoSuppression:Boolean — Un valor booleano que indica si se utiliza la supresión del eco (true ) o no (false ).
|
Emite
PermissionError — La aplicación no tiene permiso para utilizar el micrófono.
|
Elementos de API relacionados
Security.showSettings()
muestra el cuadro de diálogo de Flash Player, que requiere permiso para acceder al micrófono del ordenador. La llamada a setLoopBack(true)
redirige la entrada al altavoz speaker, por lo que se puede escuchar el sonido mientras se ejecuta el ejemplo.
Dos detectores detectan eventos activity
y status
. El evento activity
se distribuye al principio y al final (si procede) de la sesión y se captura con el método activityHandler()
, que controla la información en el evento. El evento status
se distribuye si el objeto Microphone asociado revela información de estado; se captura y se controla con el método statusHandler()
.
Nota: debe tener un micrófono conectado al ordenador para que este ejemplo funcione correctamente.
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); } } }
Tue Jun 12 2018, 02:12 PM Z