User Guide
Microphone.setSilenceLevel() 547
Returns
Nothing.
Description
Method; 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 level;
Microphone.onActivity is never invoked.
• To determine the amount of sound the microphone is currently detecting, use
Microphone.activityLevel.
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 in purpose to
Camera.setMotionLevel(); both methods are used to
specify when the
onActivity event handler should be invoked. 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.
Example
The following example changes the silence level based on the user’s input in a NumericStepper
instance called
silenceLevel_nstep. The ProgressBar instance called silenceLevel_pb
modifies its appearance depending on whether the audio stream is considered silent. Otherwise, it
displays the activity level of the audio stream.
var silenceLevel_pb:mx.controls.ProgressBar;
var silenceLevel_nstep:mx.controls.NumericStepper;
this.createEmptyMovieClip("sound_mc", this.getNextHighestDepth());
var active_mic:Microphone = Microphone.get();
sound_mc.attachAudio(active_mic);
silenceLevel_pb.label = "Activity level: %3";
silenceLevel_pb.mode = "manual";
silenceLevel_nstep.minimum = 0;
silenceLevel_nstep.maximum = 100;
silenceLevel_nstep.value = active_mic.silenceLevel;