| window.runtime property | window.runtime.flash.media.Microphone | 
| Inheritance | Microphone  EventDispatcher  Object | 
| Runtime Versions: | AIR 1.0, | 
 To get a reference to a Microphone instance, use the Microphone.getMicrophone() method 
 or the Microphone.getEnhancedMicrophone() method. An enhanced microphone instance can 
 perform acoustic echo cancellation. Use acoustic echo cancellation to create real-time audio/video applications
 that don't require headsets. 
 
Create a real-time chat application
To create a real-time chat application, capture audio and send it to Flash Media Server.
 Use the NetConnection and NetStream classes to send the audio stream to Flash Media Server. 
 Flash Media Server can broadcast the audio to other clients.
 To create a chat application that doesn't require headsets, use acoustic echo
 cancellation. Acoustic echo cancellation prevents the feedback loop that occurs when audio enters a microphone, 
 travels out the speakers, and enters the microphone again. To use acoustic echo cancellation, call 
 the Microphone.getEnhancedMicrophone() method to get a reference to a Microphone instance.
 Set Microphone.enhancedOptions to an instance of the MicrophoneEnhancedOptions class to 
 configure settings.
Play microphone audio locally
Call the Microphone setLoopback() method to route the microphone audio directly to
 the local computer or device audio output. Uncontrolled audio feedback is an inherent danger and is likely
 to occur whenever the audio output can be picked up by the microphone input. The 
 setUseEchoSuppression() method can reduce, but not eliminate, the risk of feedback
 amplification.
Capture microphone audio for local recording or processing
To capture microphone audio, listen for the sampleData events dispatched by a
 Microphone instance. The SampleDataEvent object dispatched for this event contains the audio data.
For information about capturing video, see the Camera class.
Runtime microphone support
The Microphone class is not supported in Flash Player running in a mobile browser.
You can test for support at run time using the Microphone.isSupported property.
 Note that for AIR for TV devices, Microphone.isSupported is true but
 Microphone.getMicrophone() always returns null.
Privacy controls
Flash Player displays a Privacy dialog box that lets the user choose whether to allow or deny access to the microphone. Your application window size must be at least 215 x 138 pixels, the minimum size required to display the dialog box, or access is denied automatically.
Content running in the AIR application sandbox does not need permission to access the microphone and no dialog is displayed. AIR content running outside the application sandbox does require permission and the Privacy dialog is displayed.
See also
| Property | Defined By | ||
|---|---|---|---|
| activityLevel : Number [read-only] 
	 The amount of sound the microphone is detecting. | Microphone | ||
| codec : String | Microphone | ||
|  | constructor : Object 
	 A reference to the class object or constructor function for a given object instance. | Object | |
| enableVAD : Boolean 
	 Enable Speex voice activity detection. | Microphone | ||
| encodeQuality : int 
	 The encoded speech quality when using the Speex codec. | Microphone | ||
| enhancedOptions : MicrophoneEnhancedOptions 	
	 Controls enhanced microphone options. | Microphone | ||
| framesPerPacket : int 
	 Number of Speex speech frames transmitted in a packet (message). | Microphone | ||
| gain : Number 
	 The amount by which the microphone boosts the signal. | Microphone | ||
| index : int [read-only] 
	 The index of the microphone, as reflected in the array returned by 
	 Microphone.names. | Microphone | ||
| isSupported : Boolean [static] [read-only] 
    The isSupported property is set to true if the 
    Microphone class is supported on the current platform, otherwise it is
    set to false. | Microphone | ||
| muted : Boolean [read-only] 
	 Specifies whether the user has denied access to the microphone (true) 
	 or allowed access (false). | Microphone | ||
| name : String [read-only] 
	 The name of the current sound capture device, as returned by the sound capture hardware. | Microphone | ||
| names : Array [static] [read-only] 
	 An array of strings containing the names of all available sound capture devices. | Microphone | ||
| noiseSuppressionLevel : int 
	 Maximum attenuation of the noise in dB (negative number) used for Speex encoder. | Microphone | ||
|  | prototype : Object [static] 
	 A reference to the prototype object of a class or function object. | Object | |
| rate : int 
	 The rate at which the microphone is capturing sound, in kHz. | Microphone | ||
| silenceLevel : Number [read-only] 
	 The amount of sound required to activate the microphone and dispatch 
	 the activity event. | Microphone | ||
| silenceTimeout : int [read-only] 
	 The number of milliseconds between the time the microphone stops 
	 detecting sound and the time the activity event is dispatched. | Microphone | ||
| soundTransform : flash.media:SoundTransform 
	 Controls the sound of this microphone object when it is in loopback mode. | Microphone | ||
| useEchoSuppression : Boolean [read-only] 
	 Set to true if echo suppression is enabled; false otherwise. | Microphone | ||
| Method | Defined By | ||
|---|---|---|---|
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
	Registers an event listener object with an EventDispatcher object so that the listener 
	receives notification of an event. | EventDispatcher | |
|  | dispatchEvent(event:Event):Boolean 
	Dispatches an event into the event flow. | EventDispatcher | |
| getEnhancedMicrophone(index:int = -1):Microphone [static] 
	 Returns a reference to an enhanced Microphone object that can 
	 perform acoustic echo cancellation. | Microphone | ||
| getMicrophone(index:int = -1):Microphone [static] 
	 
	 Returns a reference to a Microphone object for capturing audio. | Microphone | ||
|  | hasEventListener(type:String):Boolean 
	Checks whether the EventDispatcher object has any listeners registered for a specific type 
	of event. | EventDispatcher | |
|  | hasOwnProperty(name:String):Boolean 
	 Indicates whether an object has a specified property defined. | Object | |
|  | isPrototypeOf(theClass:Object):Boolean 
	 Indicates whether an instance of the Object class is in the prototype chain of the object specified 
	 as the parameter. | Object | |
|  | propertyIsEnumerable(name:String):Boolean 
	 Indicates whether the specified property exists and is enumerable. | Object | |
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void 
	Removes a listener from the EventDispatcher object. | EventDispatcher | |
| setLoopBack(state:Boolean = true):void 
	 Routes audio captured by a microphone to the local speakers. | Microphone | ||
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void 
     Sets the availability of a dynamic property for loop operations. | Object | |
| setSilenceLevel(silenceLevel:Number, timeout:int = -1):void 
	 Sets the minimum input level that should be considered sound and (optionally) the amount
	 of silent time signifying that silence has actually begun. | Microphone | ||
| setUseEchoSuppression(useEchoSuppression:Boolean):void 
	 Specifies whether to use the echo suppression feature of the audio codec. | Microphone | ||
|  | toLocaleString():String 
	 Returns the string representation of this object, formatted according to locale-specific conventions. | Object | |
|  | toString():String 
	 Returns the string representation of the specified object. | Object | |
|  | valueOf():Object 
	 Returns the primitive value of the specified object. | Object | |
|  | willTrigger(type:String):Boolean 
	Checks whether an event listener is registered with this EventDispatcher object or any of 
	its ancestors for the specified event type. | EventDispatcher | |
| Event | Summary | Defined By | ||
|---|---|---|---|---|
|  | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher | ||
| Dispatched when a microphone starts or stops recording due to detected silence. | Microphone | |||
|  | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher | ||
| Dispatched when the microphone has sound data in the buffer. | Microphone | |||
| Dispatched when a microphone reports its status. | Microphone | |||
| activityLevel | property | 
activityLevel:Number  [read-only] | Runtime Versions: | AIR 1.0, | 
	 The amount of sound the microphone is detecting. Values range from 
	 0 (no sound is detected) to 100 (very loud sound is detected). The value of this property can 
	 help you determine a good value to pass to the Microphone.setSilenceLevel() method.
	 
	 
If the microphone muted property is true, the value of this property is always -1.
See also
| codec | property | 
| enableVAD | property | 
enableVAD:Boolean| Runtime Versions: | 2 | 
Enable Speex voice activity detection.
| encodeQuality | property | 
encodeQuality:int| Runtime Versions: | 1.5 | 
The encoded speech quality when using the Speex codec. Possible values are from 0 to 10. The default value is 6. Higher numbers represent higher quality but require more bandwidth, as shown in the following table. The bit rate values that are listed represent net bit rates and do not include packetization overhead.
| Quality value | Required bit rate (kilobits per second) | 
|---|---|
| 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 | 
See also
| enhancedOptions | property | 
enhancedOptions:MicrophoneEnhancedOptions| Runtime Versions: | 2.7 | 
	
	 Controls enhanced microphone options. For more information, see	
	 MicrophoneEnhancedOptions class. This property is ignored for non-enhanced Microphone instances.
	 
	 
See also
| framesPerPacket | property | 
framesPerPacket:int| Runtime Versions: | 1.5 | 
Number of Speex speech frames transmitted in a packet (message). Each frame is 20 ms long. The default value is two frames per packet.
The more Speex frames in a message, the lower the bandwidth required but the longer the delay in sending the message. Fewer Speex frames increases bandwidth required but reduces delay.
| gain | property | 
gain:Number| Runtime Versions: | AIR 1.0, | 
The amount by which the microphone boosts the signal. Valid values are 0 to 100. The default value is 50.
See also
| index | property | 
index:int  [read-only] | Runtime Versions: | AIR 1.0, | 
	 The index of the microphone, as reflected in the array returned by 
	 Microphone.names.
	 
	 
	 
See also
| isSupported | property | 
isSupported:Boolean  [read-only] | Runtime Versions: | 2 | 
    The isSupported property is set to true if the 
    Microphone class is supported on the current platform, otherwise it is
    set to false. 
    
    
| muted | property | 
muted:Boolean  [read-only] | Runtime Versions: | AIR 1.0, | 
	 Specifies whether the user has denied access to the microphone (true) 
	 or allowed access (false). When this value changes, 
	 a status event is dispatched.
	 For more information, see Microphone.getMicrophone(). 
	 
	 
	 
See also
| name | property | 
name:String  [read-only] | Runtime Versions: | AIR 1.0, | 
The name of the current sound capture device, as returned by the sound capture hardware.
See also
| names | property | 
names:Array  [read-only] | Runtime Versions: | AIR 1.0, | 
	 An array of strings containing the names of all available sound capture devices. 
	 The names are returned without 
	 having to display the Flash Player Privacy Settings panel to the user. This array 
	 provides the zero-based index of each sound capture device and the 
	 number of sound capture devices on the system, through the Microphone.names.length property. 
	 For more information, see the Array class entry.
	 
	 
Calling Microphone.names requires an extensive examination of the hardware, and it
	 may take several seconds to build the array. In most cases, you can just use the default microphone.
Note: To determine the name of the current microphone, 
	 use the name property.
See also
| noiseSuppressionLevel | property | 
noiseSuppressionLevel:int| Runtime Versions: | 2 | 
Maximum attenuation of the noise in dB (negative number) used for Speex encoder. If enabled, noise suppression is applied to sound captured from Microphone before Speex compression. Set to 0 to disable noise suppression. Noise suppression is enabled by default with maximum attenuation of -30 dB. Ignored when Nellymoser codec is selected.
| rate | property | 
rate:int| Runtime Versions: | AIR 1.0, | 
The rate at which the microphone is capturing sound, in kHz. Acceptable values are 5, 8, 11, 22, and 44. The default value is 8 kHz if your sound capture device supports this value. Otherwise, the default value is the next available capture level above 8 kHz that your sound capture device supports, usually 11 kHz.
Note: The actual rate differs slightly from the rate value, as noted
	 in the following table:
| ratevalue | Actual frequency | 
|---|---|
| 44 | 44,100 Hz | 
| 22 | 22,050 Hz | 
| 11 | 11,025 Hz | 
| 8 | 8,000 Hz | 
| 5 | 5,512 Hz | 
See also
| silenceLevel | property | 
silenceLevel:Number  [read-only] | Runtime Versions: | AIR 1.0, | 
	 The amount of sound required to activate the microphone and dispatch 
	 the activity event. The default value is 10.
	 
	 
See also
| silenceTimeout | property | 
silenceTimeout:int  [read-only] | Runtime Versions: | AIR 1.0, | 
	 The number of milliseconds between the time the microphone stops 
	 detecting sound and the time the activity event is dispatched. The default 
	 value is 2000 (2 seconds).
	 
	 
To set this value, use the Microphone.setSilenceLevel() method.
See also
| soundTransform | property | 
soundTransform:flash.media:SoundTransform| Runtime Versions: | AIR 1.0, | 
Controls the sound of this microphone object when it is in loopback mode.
| useEchoSuppression | property | 
useEchoSuppression:Boolean  [read-only] | Runtime Versions: | AIR 1.0, | 
	 Set to true if echo suppression is enabled; false otherwise. The default value is 
	 false unless the user has selected Reduce Echo in the Flash Player Microphone Settings panel.
	 
	 
	 
See also
| getEnhancedMicrophone | () | method | 
 public function getEnhancedMicrophone(index:int = -1):Microphone| Runtime Versions: | 2.7 | 
Returns a reference to an enhanced Microphone object that can perform acoustic echo cancellation. Use acoustic echo cancellation to create audio/video chat applications that don't require headsets.
The index parameter for the Microphone.getEnhancedMicrophone() method and the Microphone.getMicrophone()
	 method work the same way.
Important: At any given time you can have only a single instance of enhanced microphone device.
	 All other Microphone instances stop providing audio data and receive a StatusEvent with the 
	 code property Microphone.Unavailable. When enhanced audio fails to initialize, 
	 calls to this method return null, setting a value for Microphone.enhancedOptions has no effect, 
	 and all existing Microphone instances function as before.
To configure an enhanced Microphone object, set the Microphone.enhancedOptions property. The following
	 code uses an enhanced Microphone object and full-duplex acoustic echo cancellation in a local test:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
The setUseEchoSuppression() method is ignored when using acoustic echo cancellation.
	 
Parameters
| index:int(default =-1)— The index value of the microphone. | 
| Microphone— A reference to a Microphone object for capturing audio. If enhanced audio fails to initialize, returnsnull. | 
See also
| getMicrophone | () | method | 
 public function getMicrophone(index:int = -1):Microphone| Runtime Versions: | AIR 1.0, | 
	 
	 Returns a reference to a Microphone object for capturing audio.
	 To begin capturing the audio, you must attach the Microphone
	 object to a NetStream object (see NetStream.attachAudio()).
	 
	 
	 Multiple calls to Microphone.getMicrophone() reference the same microphone. 
	 Thus, if your code contains the lines  
	  and
	   
	 mic2 = air.Microphone.getMicrophone(), both mic1 and mic2 
	 reference the same (default) microphone.
	 In general, you should not pass a value for index. Simply call 
	 
	 Microphone.getMicrophone() to return a reference to the default microphone. 
	 Using the Microphone Settings section in the Flash Player settings panel, the user can specify the default 
	 microphone the application should use. (The user access the Flash Player settings panel by right-clicking
	 Flash Player content running in a web browser.) If you pass a value for index, you can 
	 reference a microphone other than the one the user chooses. You can use index in 
	 rare cases—for example, if your application is capturing audio from two microphones 
	 at the same time. Content running in Adobe AIR also uses the Flash Player setting for the default 
	 microphone.
	 Use the Microphone.index property to get the index value of the current
	 Microphone object. You can then pass this value to other methods of the
	 Microphone class.
	 
         When the user responds to this dialog box, a status event is dispatched
         that indicates the user's response. You can also check the Microphone.muted
         property to determine if the user has allowed or denied access to the microphone. 
	 
	 If Microphone.getMicrophone() returns null, either the microphone is in use 
	 by another application, or there are no microphones installed on the system. To determine 
	 whether any microphones are installed, use Microphones.names.length. To display 
	 the Flash Player Microphone Settings panel, which lets the user choose the microphone to be 
	 referenced by Microphone.getMicrophone, use Security.showSettings(). 
	 
	 
Parameters
| index:int(default =-1)— The index value of the microphone. | 
| Microphone— A reference to a Microphone object for capturing audio. | 
Events
| status:— Dispatched when a microphone reports its status. 
	 If the value of thecodeproperty is"Microphone.Muted",
	 the user has refused to allow the SWF file access to the user's microphone.
	 If the value of thecodeproperty is"Microphone.Unmuted",
	 the user has allowed the SWF file access to the user's microphone. | 
See also
| setLoopBack | () | method | 
 public function setLoopBack(state:Boolean = true):void| Runtime Versions: | AIR 1.0, | 
Routes audio captured by a microphone to the local speakers.
Parameters
| state:Boolean(default =true) | 
| setSilenceLevel | () | method | 
 public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void| Runtime Versions: | AIR 1.0, | 
Sets the minimum input level that should be considered sound and (optionally) the amount of silent time signifying that silence has actually begun.
- To prevent the microphone from detecting sound at all, pass a value of 100 for 
	     silenceLevel; theactivityevent is never dispatched.
- To determine the amount of sound the microphone is currently detecting, use Microphone.activityLevel.
Speex includes voice activity detection (VAD) and automatically reduces bandwidth when no voice is detected. When using the Speex codec, Adobe recommends that you set the silence level to 0.
Activity detection is the ability to detect when audio levels suggest that a person is talking. When someone is not talking, bandwidth can be saved because there is no need to send the associated audio stream. This information can also be used for visual feedback so that users know they (or others) are silent.
Silence values correspond directly to activity values. Complete silence is an activity value of 0. Constant loud noise (as loud as can be registered based on the current gain setting) is an activity value of 100. After gain is appropriately adjusted, your activity value is less than your silence value when you're not talking; when you are talking, the activity value exceeds your silence value.
This method is similar to Camera.setMotionLevel(); both methods are used to
	 specify when the activity event is dispatched. However, these methods have 
	 a significantly different impact on publishing streams:
- Camera.setMotionLevel()is designed to detect motion and does not affect bandwidth usage. Even if a video stream does not detect motion, video is still sent.
- Microphone.setSilenceLevel()is designed to optimize bandwidth. When an audio stream is considered silent, no audio data is sent. Instead, a single message is sent, indicating that silence has started.
Parameters
| silenceLevel:Number— The amount of sound required to activate the microphone
	 and dispatch theactivityevent. Acceptable values range from 0 to 100. | |
| timeout:int(default =-1)— The number of milliseconds that must elapse without
	 activity before Flash Player or Adobe AIR considers sound to have stopped and dispatches thedispatchevent. The default value is 2000 (2 seconds). 
	 (Note: The default value shown 
	 in the signature, -1, is an internal value that indicates to Flash Player or Adobe AIR to use 2000.) | 
See also
| setUseEchoSuppression | () | method | 
 public function setUseEchoSuppression(useEchoSuppression:Boolean):void| Runtime Versions: | AIR 1.0, | 
	 Specifies whether to use the echo suppression feature of the audio codec. The default value is 
	 false unless the user has selected Reduce Echo in the Flash Player Microphone 
	 Settings panel.
	 
	 
Echo suppression is an effort to reduce the effects of audio feedback, which is caused when
	 sound going out the speaker is picked up by the microphone on the same system. (This is different
	 from acoustic echo cancellation, which completely removes the feedback. The setUseEchoSuppression() method
	 is ignored when you call the getEnhancedMicrophone() method to use acoustic echo cancellation.)
Generally, echo suppression is advisable when the sound being captured is played through 
	 speakers — instead of a headset —. If your SWF file allows users to specify the
	 sound output device, you may want to call Microphone.setUseEchoSuppression(true) 
	 if they indicate they are using speakers and will be using the microphone as well. 
Users can also adjust these settings in the Flash Player Microphone Settings panel.
Parameters
| useEchoSuppression:Boolean— A Boolean value indicating whether to use echo suppression 
	 (true) or not (false). | 
See also
| activity | Event | 
flash.events.ActivityEventproperty ActivityEvent.type =
flash.events.ActivityEvent.ACTIVITY| Runtime Versions: | AIR 1.0, | 
Dispatched when a microphone starts or stops recording due to detected silence.
 To specify the amount of sound required to trigger this event
 with an activating property of true,
 or the amount of time that must elapse without sound to
 trigger this event with an activating property of
 false, use Microphone.setSilenceLevel().
 
For a Microphone object to dispatch activity events, the application must be monitoring 
 the input, either by calling setLoopback( true ), by listening for
 sampleData events, or by attaching the microphone to a NetStream object.
ActivityEvent.ACTIVITY constant defines the value of the type property of an activity event object. 
	This event has the following properties:
| Property | Value | 
|---|---|
| activating | trueif the device is activating orfalseif it is deactivating. | 
| bubbles | false | 
| cancelable | false; there is no default behavior to cancel. | 
| currentTarget | The object that is actively processing the Event object with an event listener. | 
| target | The object beginning or ending a session, such as a Camera or Microphone object. | 
See also
| sampleData | Event | 
flash.events.SampleDataEventproperty SampleDataEvent.type =
flash.events.SampleDataEvent.SAMPLE_DATA| Runtime Versions: | 2 | 
Dispatched when the microphone has sound data in the buffer.
 The Microphone.rate property determines the number of samples generated 
 per second. The number of samples per event is a factor of the number of samples 
 per second and the latency between event calls.
 
type property of a SampleDataEvent event object. 
		This event has the following properties:
| Property | Value | 
|---|---|
| bubbles | false | 
| cancelable | false; there is no default behavior to cancel. | 
| position | The point from which audio data is provided. | 
See also
| status | Event | 
flash.events.StatusEventproperty StatusEvent.type =
flash.events.StatusEvent.STATUS| Runtime Versions: | AIR 1.0, | 
 Dispatched when a microphone reports its status. 
 If the value of the code property is "Microphone.Muted",
 the user has refused to allow the SWF file access to the microphone.
 If the value of the code property is "Microphone.Unmuted",
 the user has allowed the SWF file access to the microphone.
 
 
Status events are not dispatched in Adobe AIR applications; access to the microphone cannot be changed dynamically. On most platforms, AIR applications can always access the microphone. On Android, an application must specify the Android RECORD_AUDIO permission in the application descriptor. Otherwise, Android denies access to the microphone altogether.
Defines the value of thetype property of a status event object.
	 This event has the following properties:
| Property | Value | 
|---|---|
| bubbles | false | 
| cancelable | false; there is no default behavior to cancel. | 
| code | A description of the object's status. | 
| currentTarget | The object that is actively processing the Event object with an event listener. | 
| level | The category of the message, such as "status","warning"or"error". | 
| target | The object reporting its status. | 
See also
Thu Sep 29 2011, 02:34 AM -07:00

 Hide Inherited Public Properties
 Hide Inherited Public Properties Show Inherited Properties
 Show Inherited Properties