包 | flash.media |
类 | public final class Microphone |
继承 | Microphone EventDispatcher Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
Microphone 类主要用于服务器,如 Flash Media Server 或 Flex。 但是,也可以在没有服务器的情况下使用 Microphone 类,只是在使用上受到限制,例如通过本地计算机上的扬声器传送来自麦克风的声音。 将 Microphone 对象附加到 NetStream 对象以便传输来自麦克风的音频流。
警告:Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问麦克风。 请确保应用程序窗口大小至少为 215 x 138 像素;这是显示该对话框所需的最小大小。
若要创建或引用 Microphone 对象,请使用 Microphone.getMicrophone()
方法。
另请参见
属性 | 定义方 | ||
---|---|---|---|
activityLevel : Number
[read-only]
麦克风正在检测的音量。
| Microphone | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
gain : Number
麦克风增益 - 即麦克风在传送信号之前应该将信号放大的倍数。
| Microphone | ||
index : int
[read-only]
麦克风的索引,它反映在 Microphone.names 返回的数组中。
| Microphone | ||
muted : Boolean
[read-only]
指定用户是已经拒绝对麦克风的访问 (true) 还是已经允许对麦克风的访问 (false)。
| Microphone | ||
name : String
[read-only]
当前声音捕获设备的名称,它由声音捕获硬件返回。
| Microphone | ||
names : Array
[static] [read-only]
所有可用的声音捕获设备的名称。
| Microphone | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object | ||
rate : int
麦克风捕获声音的频率,单位是 kHz。
| Microphone | ||
silenceLevel : Number
[read-only]
激活麦克风并调度 activity 事件所需的音量。
| Microphone | ||
silenceTimeout : int
[read-only]
麦克风停止检测声音的时间和调度 activity 事件的时间之间相差的毫秒数。
| Microphone | ||
soundTransform : SoundTransform
在此麦克风对象处于环回模式时,控制它的声音。
| Microphone | ||
useEchoSuppression : Boolean
[read-only]
若启用了回音抑制,则返回 true;否则返回 false。
| Microphone |
方法 | 定义方 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
| EventDispatcher | ||
将事件调度到事件流中。
| EventDispatcher | ||
[static]
若要创建或引用 Microphone 对象,请使用 Microphone.getMicrophone() 方法来获取当前麦克风的索引值。
| Microphone | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
| EventDispatcher | ||
指示对象是否已经定义了指定的属性。
| Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
从 EventDispatcher 对象中删除侦听器。
| EventDispatcher | ||
将麦克风设为环回模式或将其关闭。
| Microphone | ||
设置循环操作动态属性的可用性。
| Object | ||
设置可认定为有声的最低音量输入水平,以及实际静音前需经历的无声时间长度(可选)。
| Microphone | ||
指定是否使用音频编解码器的回音抑制功能。
| Microphone | ||
返回指定对象的字符串表示形式。
| Object | ||
返回指定对象的原始值。
| Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
| EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
Flash Player 获得操作系统焦点并变为活动状态时调度。 | EventDispatcher | |||
在麦克风开始或结束会话时调度。 | Microphone | |||
Flash Player 失去操作系统焦点并变为非活动状态时调度。 | EventDispatcher | |||
在麦克风报告其状态时调度。 | Microphone |
activityLevel | 属性 |
activityLevel:Number
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
麦克风正在检测的音量。 值的范围为 0(未检测到声音)到 100(检测到非常大的声音)。 此属性的值有助于确定向 Microphone.setSilenceLevel()
方法传递的适当值。
如果麦克风可用,但却因为尚未调用 Microphone.getMicrophone()
而未被使用,则此属性设置为 -1。
public function get activityLevel():Number
另请参见
gain | 属性 |
gain:Number
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
麦克风增益 - 即麦克风在传送信号之前应该将信号放大的倍数。 值 0 指示 Flash 将其乘以 0;即麦克风不传送声音。
您可以将此设置想象为立体声音响上的音量旋钮:0 表示没有音量,50 表示正常音量。 小于 50 的数字表示低于正常音量,大于 50 的数字表示高于正常音量。 有效值为 0 到 100。 用户可以在 Flash Player 的“麦克风设置”面板中更改此值。
public function get gain():Number
public function set gain(value:Number):void
另请参见
index | 属性 |
index:int
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
麦克风的索引,它反映在 Microphone.names
返回的数组中。
public function get index():int
另请参见
muted | 属性 |
muted:Boolean
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
指定用户是已经拒绝对麦克风的访问 (true
) 还是已经允许对麦克风的访问 (false
)。 当此值出现更改时,将调用 Microphone.onStatus
。 有关详细信息,请参阅 Microphone.getMicrophone()
。
public function get muted():Boolean
另请参见
name | 属性 |
name:String
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
当前声音捕获设备的名称,它由声音捕获硬件返回。
public function get name():String
另请参见
names | 属性 |
names:Array
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
所有可用的声音捕获设备的名称。 返回名称,但不必向用户显示 Flash Player 的“专用设置”面板。 此数组通过 Microphone.names.length
属性提供每个声音捕获设备的从零开始的索引和系统上声音捕获设备的数量。 有关详细信息,请参阅 Array 类条目。
调用 Microphone.names
要求全面检查硬件,并可能需要几秒钟时间才能生成数组。 大多数情况下,使用默认麦克风即可。
注意:若要确定当前麦克风的名称,请使用 name
属性。
public static function get names():Array
另请参见
rate | 属性 |
rate:int
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
麦克风捕获声音的频率,单位是 kHz。 如果您的声音捕获设备支持 8 kHz,则默认值为 8 kHz。 否则,默认值为您的声音捕获设备支持且高于 8 kHz 的下一个可用捕获级别,通常为 11 kHz。
public function get rate():int
public function set rate(value:int):void
silenceLevel | 属性 |
silenceLevel:Number
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
激活麦克风并调度 activity
事件所需的音量。 默认值为 10。
public function get silenceLevel():Number
另请参见
silenceTimeout | 属性 |
silenceTimeout:int
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
麦克风停止检测声音的时间和调度 activity
事件的时间之间相差的毫秒数。 默认值为 2000(2 秒)。
若要设置此值,请使用 Microphone.setSilenceLevel()
方法。
public function get silenceTimeout():int
另请参见
soundTransform | 属性 |
soundTransform:SoundTransform
[read-write]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在此麦克风对象处于环回模式时,控制它的声音。
public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
useEchoSuppression | 属性 |
useEchoSuppression:Boolean
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
若启用了回音抑制,则返回 true
;否则返回 false
。 除非用户已经在 Flash Player 的“麦克风设置”面板中选择了“降低回音”,否则默认值为 false
。
public function get useEchoSuppression():Boolean
另请参见
getMicrophone | () | 方法 |
public static function getMicrophone(index:int = 0):Microphone
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
若要创建或引用 Microphone 对象,请使用 Microphone.getMicrophone()
方法来获取当前麦克风的索引值。 然后,就可以将此值传递到 Microphone 类的方法。
参数
index:int (default = 0 ) — 麦克风的索引值。
|
Microphone |
status: — 在麦克风报告其状态时调度。 如果 code 属性的值为 "Microphone.muted" ,则表示用户拒绝 SWF 文件访问他的麦克风。 如果 code 属性的值为 "Microphone.unmuted" ,则表示用户允许 SWF 文件访问他的麦克风。 |
另请参见
setLoopBack | () | 方法 |
public function setLoopBack(state:Boolean = true):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
将麦克风设为环回模式或将其关闭。 此方法会将麦克风声音重新发送到本地扬声器。
参数
state:Boolean (default = true )
|
setSilenceLevel | () | 方法 |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
设置可认定为有声的最低音量输入水平,以及实际静音前需经历的无声时间长度(可选)。
silenceLevel
传递值 100;这样就决不会调度 activity
。 Microphone.activityLevel
。 活动检测是检测声音级别在何时表示某人正在谈话的功能。 当某人没有谈话时,由于不需要发送关联的音频流,因此可以节约带宽。 此信息也可用于视频反馈,以便让用户知道他们(或其他人)没有谈话。
静音值与活动值直接对应。 完全静音对应于活动值 0。 持续噪音(根据当前增益设置可以检测到的噪音)对应于活动值 100。 当增益得到适当调整之后,在您没有说话时,活动值将小于静音值;在您说话时,活动值将大于静音值。
此方法在目的上与 Camera.setMotionLevel()
类似;这两种方法都用于指定在何时调度 activity
事件。 不过,这两种方法在对发布流的影响上具有显著的差异:
Camera.setMotionLevel()
设计用于检测运动,并且不影响带宽用量。 即使视频流未检测到运动,仍将发送视频。Microphone.setSilenceLevel()
设计用于优化带宽。 在认为音频流被静音时,不发送任何音频数据。 而改为发送一条指示静音已启动的消息。 参数
silenceLevel:Number — 激活麦克风并调度 activity 事件所需的音量。 可接受值的范围为 0 到 100。
|
|
timeout:int (default = -1 ) — 在没有活动的情况下经过的毫秒数,必须经过这么长的时间,Flash Player 才会认为声音已停止并调度 dispatch 事件。 默认值为 2000(2 秒)。 (注意:在签名中显示的默认值 -1 是一个内部值,用于指示 Flash Player 使用 2000。)
|
另请参见
setUseEchoSuppression | () | 方法 |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
指定是否使用音频编解码器的回音抑制功能。 除非用户已经在 Flash Player 的“麦克风设置”面板中选择了“降低回音”,否则默认值为 false
。
回音抑制是指降低音频回馈效果,当扬声器发出的声音由同一台计算机上的麦克风拾取时,将导致音频回馈。 (这不同于回音消除,后者完全消除回馈。)
通常情况下,当通过同一台计算机上的扬声器(而不是耳机)播放所捕获的声音时,建议使用回音抑制。 如果您的 SWF 文件允许用户指定声音输出设备,则当他们指定使用扬声器并且还将使用麦克风时,您可能需要调用 Microphone.setUseEchoSuppression(true)
。
用户也可以在 Flash Player 的“麦克风设置”面板中调整这些设置。
参数
useEchoSuppression:Boolean — 一个用于指示是应该使用 (true ) 还是不应该使用 (false ) 回音抑制的布尔值。
|
另请参见
activity | 事件 |
flash.events.ActivityEvent
flash.events.ActivityEvent.ACTIVITY
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在麦克风开始或结束会话时调度。
ActivityEvent.ACTIVITY
常数定义 activity
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
activating | 如果设备已激活则为 true ,如果被取消激活则为 false 。 |
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 开始或结束会话的对象,如 Camera 或 Microphone 对象。 |
status | 事件 |
flash.events.StatusEvent
flash.events.StatusEvent.STATUS
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在麦克风报告其状态时调度。 若 code
属性的值为 "Microphone.muted"
,则表示用户拒绝 SWF 文件访问他的麦克风。 若 code
属性的值为 "Microphone.unmuted"
,则表示用户允许 SWF 文件访问麦克风。
status
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
code | 对象状态的描述。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
level | 消息类别,例如 "status" 、"warning" 或 "error" 。 |
target | 报告其状态的对象。 |
另请参见
Security.showSettings()
方法显示 Flash Player 对话框,请求提供对用户的麦克风的访问权限。 对 setLoopBack(true)
的调用会将输入重新发送到本地扬声器,以便在运行示例时可以听到声音。
有两个侦听器用于侦听 activity
和 status
事件。 activity
事件在会话开始和结束(如果有)时被调度,并由 activityHandler()
方法捕获(此方法跟踪有关该事件的信息)。 status
事件在附加的 Microphone 对象报告任何状态信息时被调度;将使用 statusHandler()
方法捕获并跟踪此信息。
注意:必须将麦克风与计算机连接,此示例才能正常运行。
package { import flash.display.Sprite; import flash.events.*; import flash.media.Microphone; import flash.system.Security; import flash.system.SecurityPanel; public class MicrophoneExample extends Sprite { public function MicrophoneExample() { var mic:Microphone = Microphone.getMicrophone(); Security.showSettings(SecurityPanel.MICROPHONE); 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); } } }
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/media/Microphone.html