包 | flash.media |
类 | public final class Microphone |
继承 | Microphone EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
要访问设备麦克风,可以使用 Microphone.getMicrophone()
方法。不过此方法只是返回一个麦克风,无法消除回音。若要消除回音,需要使用 Microphone.getEnhancedMicrophone()
方法获得一个麦克风实例。此方法将返回一个对移动设备启用了回音消除功能的设备麦克风。使用回音消除功能可创建不需要耳机的实时音频/视频应用程序。
创建实时聊天应用程序
若要创建实时聊天应用程序,请捕获音频并将其发送到 Flash Media Server。使用 NetConnection 和 NetStream 类可将音频流发送到 Flash Media Server。Flash Media Server 可将音频广播到其他客户端。若要创建不需要耳机的聊天应用程序,请使用回音消除功能。回音消除功能可防止反馈回路 — 当音频进入麦克风,离开扬声器,并再次进入麦克风时,将产生反馈回路。若要使用回音消除功能,请调用 Microphone.getEnhancedMicrophone()
方法以获得对 Microphone 实例的引用。将 Microphone.enhancedOptions
设置为 MicrophoneEnhancedOptions
类的实例可配置设置。
在本地播放麦克风音频
调用 Microphone setLoopback()
方法将麦克风音频直接传送到本地计算机或设备音频输出。未控制的音频反馈始终是个问题,每当音频输出可以由麦克风输入拾取时都可能发生。setUseEchoSuppression()
方法可以减少(但无法消除)反馈放大的风险。
捕获麦克风音频以便进行本地录制或处理
要捕获麦克风音频,请侦听由 Microphone 实例调度的 sampleData
事件。为此事件调度的 SampleDataEvent 对象包含音频数据。
有关捕获视频的信息,请参阅 Camera 类。
运行时麦克风支持
在移动浏览器中运行的 Flash Player 不支持 Microphone 类。
AIR 配置文件支持:桌面操作系统、iOS 和 Android 移动设备均支持 Microphone 类。AIR for TV 设备不支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
您可以使用 Microphone.isSupported
属性在运行时测试是否受支持。注意,在 AIR for TV 设备上,Microphone.isSupported
为 true
,但是 Microphone.getMicrophone()
始终返回 null
。
隐私控制
Flash Player 显示一个“隐私”对话框,让用户选择是允许还是拒绝访问麦克风。您的应用程序窗口大小必须至少是 215 x 138 像素,这是显示对话框要求的最小大小,否则自动拒绝访问。
在 AIR 应用程序沙箱中运行的内容不需要访问麦克风的权限,并且不显示对话框。在应用程序沙箱外运行的 AIR 内容要求权限,并显示“隐私”对话框。
了解详细信息
Cristophe Coenraets:Android 语音注意事项
Michael Chaize:AIR、Android 和麦克风
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
activityLevel : Number [只读]
麦克风正在检测的音量。 | Microphone | ||
codec : String
用于压缩音频的编解码器。 | Microphone | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
enableVAD : Boolean
启用 Speex 语音活动检测。 | Microphone | ||
encodeQuality : int
使用 Speex 编解码器时的编码语音品质。 | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
控制增强的麦克风选项。 | Microphone | ||
framesPerPacket : int
在一个包(消息)中传输的 Speex 语音帧的数目。 | Microphone | ||
gain : Number
麦克风放大信号的程度。 | Microphone | ||
index : int [只读]
麦克风的索引,它反映在 Microphone.names 返回的数组中。 | Microphone | ||
isSupported : Boolean [静态] [只读]
如果当前平台支持 Microphone 类,则 isSupported 属性设置为 true,否则设置为 false。 | Microphone | ||
muted : Boolean [只读]
指定用户是已经拒绝对麦克风的访问 (true) 还是已经允许对麦克风的访问 (false)。 | Microphone | ||
name : String [只读]
当前声音捕获设备的名称,它由声音捕获硬件返回。 | Microphone | ||
names : Array [静态] [只读]
包含所有可用声音捕获设备名称的字符串数组。 | Microphone | ||
noiseSuppressionLevel : int
Speex 编码器使用的最大噪音衰减分贝数(负数)。 | Microphone | ||
permissionStatus : String [静态] [只读]
确定应用程序是否已被授予麦克风使用权限。 | Microphone | ||
rate : int
麦克风捕获声音时使用的速率,单位是 kHz。 | Microphone | ||
silenceLevel : Number [只读]
激活麦克风并调度 activity 事件所需的音量。 | Microphone | ||
silenceTimeout : int [只读]
麦克风停止检测声音的时间和调度 activity 事件的时间之间相差的毫秒数。 | Microphone | ||
soundTransform : flash.media:SoundTransform
在此麦克风对象处于环回模式时,控制它的声音。 | Microphone | ||
useEchoSuppression : Boolean [只读]
如果启用了回音抑制,则设置为 true;否则,设置为 false。 | Microphone |
方法 | 由以下参数定义 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
[静态]
返回对可以执行回音消除功能的增强的 Microphone 对象的引用。 | Microphone | ||
[静态]
返回对用于捕获音频的 Microphone 对象的引用。 | Microphone | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
为应用程序申请麦克风权限。 | Microphone | ||
将麦克风捕获的音频传送到本地扬声器。 | Microphone | ||
设置循环操作动态属性的可用性。 | Object | ||
设置可认定为有声的最低音量输入水平,以及实际静音前需经历的无声时间长度(可选)。 | Microphone | ||
指定是否使用音频编解码器的回音抑制功能。 | Microphone | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
activityLevel | 属性 |
activityLevel:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
麦克风正在检测的音量。值的范围为 0(未检测到声音)到 100(检测到非常大的声音)。此属性的值有助于确定向 Microphone.setSilenceLevel()
方法传递的适当值。
如果麦克风 muted
属性为 true
,此属性的值始终为 -1。
实现
public function get activityLevel():Number
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
codec | 属性 |
codec:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
用于压缩音频的编解码器。可用编解码器为 Nellymoser(默认值)和 Speex。枚举类 SoundCodec
包含各种对 codec
属性有效的值。
如果使用 Nellymoser 编解码器,可使用 Microphone.rate()
设置采样率。如果使用 Speex 编解码器,则采样率会设置为 16 kHz。
Speex 具有语音活动检测功能 (VAD),在未检测到语音时将自动减小带宽。使用 Speex 编解码器时,Adobe 建议将静音级别设置为 0。要设置静音级别,请使用 Microphone.setSilenceLevel()
方法。
实现
public function get codec():String
public function set codec(value:String):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
enableVAD | 属性 |
enableVAD:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2 |
启用 Speex 语音活动检测。
实现
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
encodeQuality | 属性 |
encodeQuality:int
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
使用 Speex 编解码器时的编码语音品质。可能值为从 0 到 10 的值。默认值为 6。数字越大,表示品质越高,但需要更多的带宽,如下表所示。列出的比特率值表示净比特率,并不包括信息分包开销。
品质值 | 所需的比特率(KB/秒) |
---|---|
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 |
实现
public function get encodeQuality():int
public function set encodeQuality(value:int):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
enhancedOptions | 属性 |
enhancedOptions:MicrophoneEnhancedOptions
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.3, AIR 2.7 |
控制增强的麦克风选项。有关详细信息,请参阅 MicrophoneEnhancedOptions
类。对于非增强的 Microphone 实例,此属性被忽略。
实现
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
framesPerPacket | 属性 |
gain | 属性 |
gain:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
麦克风放大信号的程度。有效值为 0 到 100。默认值为 50。
实现
public function get gain():Number
public function set gain(value:Number):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
index | 属性 |
index:int
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
麦克风的索引,它反映在 Microphone.names
返回的数组中。
实现
public function get index():int
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
isSupported | 属性 |
muted | 属性 |
muted:Boolean
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
指定用户是已经拒绝对麦克风的访问 (true
) 还是已经允许对麦克风的访问 (false
)。当该值发生变化时,将调度 status
事件。有关详细信息,请参阅 Microphone.getMicrophone()
。
实现
public function get muted():Boolean
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
name | 属性 |
names | 属性 |
names:Array
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
包含所有可用声音捕获设备名称的字符串数组。返回名称,但不必向用户显示 Flash Player 的“专用设置”面板。此数组通过 Microphone.names.length
属性提供每个声音捕获设备的从零开始的索引和系统上声音捕获设备的数量。有关详细信息,请参阅 Array 类条目。
调用 Microphone.names
要求全面检查硬件,并可能需要几秒钟时间才能生成数组。大多数情况下,使用默认麦克风即可。
注意:要确定当前麦克风的名称,请使用 name
属性。
实现
public static function get names():Array
相关 API 元素
noiseSuppressionLevel | 属性 |
noiseSuppressionLevel:int
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2 |
Speex 编码器使用的最大噪音衰减分贝数(负数)。如果启用,则在从 Microphone 捕获的声音进行 Speex 压缩之前应用噪音抑制。设置为 0 以禁用噪音抑制。默认启用噪音抑制,最大衰减为 -30 dB。选择 Nellymoser 编解码器时被忽略。
实现
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
permissionStatus | 属性 |
rate | 属性 |
rate:int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
麦克风捕获声音时使用的速率,单位是 kHz。可接受的值为 5、8、11、22 和 44。如果您的声音捕获设备支持 8 kHz,则默认值为 8 kHz。否则,默认值是您的声音捕获设备支持的高于 8 kHz 的下一个可用捕获级别,通常为 11 kHz。
注意:实际速率与下表中注明的 rate
值稍有不同:
rate 值 | 实际频率 |
---|---|
44 | 44,100 Hz |
22 | 22,050 Hz |
11 | 11,025 Hz |
8 | 8,000 Hz |
5 | 5,512 Hz |
实现
public function get rate():int
public function set rate(value:int):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
silenceLevel | 属性 |
silenceLevel:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
激活麦克风并调度 activity
事件所需的音量。默认值为 10。
实现
public function get silenceLevel():Number
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
silenceTimeout | 属性 |
silenceTimeout:int
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
麦克风停止检测声音的时间和调度 activity
事件的时间之间相差的毫秒数。默认值为 2000(2 秒)。
要设置此值,请使用 Microphone.setSilenceLevel()
方法。
实现
public function get silenceTimeout():int
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
soundTransform | 属性 |
soundTransform:flash.media:SoundTransform
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
在此麦克风对象处于环回模式时,控制它的声音。
实现
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
useEchoSuppression | 属性 |
getEnhancedMicrophone | () | 方法 |
public static function getEnhancedMicrophone(index:int = -1):Microphone
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.3, AIR 2.7 |
返回对可以执行回音消除功能的增强的 Microphone 对象的引用。使用回音消除功能可创建不需要耳机的音频/视频聊天应用程序。
Microphone.getEnhancedMicrophone()
方法和 Microphone.getMicrophone()
方法的 index
参数的工作方式相同。
要在 Android 上使用此方法,需在应用程序描述符的 Android 清单添加项下添加 MODIFY_ AUDIO_ SETTINGS
权限。
重要说明:在任何给定时间,您只能具有单个增强麦克风设备实例。所有其他 Microphone 实例都将停止提供音频数据,并且将收到 code
属性为 Microphone.Unavailable
的 StatusEvent
。当增强的音频初始化失败时,调用此方法将返回 null
,为 Microphone.enhancedOptions
设置值没有效果,并且所有现有 Microphone 实例的工作方式保持不变。
若要配置增强的 Microphone 对象,请设置 Microphone.enhancedOptions
属性。下面的代码在本地测试中使用增强的 Microphone 对象和全双工回音消除功能:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
在使用回音消除功能时,将忽略 setUseEchoSuppression()
方法。
当 SWF 文件尝试访问 Microphone.getEnhancedMicrophone()
返回的对象时(例如,在调用 NetStream.attachAudio()
时),Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问麦克风。(确保舞台大小至少为 215 x 138 个像素;这是 Flash Player 显示该对话框所需的最小大小。)
参数
index:int (default = -1 ) — 麦克风的索引值。
|
Microphone — 对用于捕获音频的 Microphone 对象的引用。如果增强的音频初始化失败,则返回 null 。
|
相关 API 元素
getMicrophone | () | 方法 |
public static function getMicrophone(index:int = -1):Microphone
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
返回对用于捕获音频的 Microphone 对象的引用。要开始捕获音频,您必须将 Microphone 对象附加到 NetStream 对象(请参阅 NetStream.attachAudio()
)。
多个对 Microphone.getMicrophone()
的调用引用相同的麦克风。因此,如果您的代码包含 mic1 = Microphone.getMicrophone()
和 mic2 = Microphone.getMicrophone()
行,那么 mic1
和 mic2
都会引用相同的(默认)麦克风。
通常,不应传递 index
的值。只需调用 air.Microphone.getMicrophone()
即可返回对默认麦克风的引用。使用 Flash Player 设置面板的“麦克风设置”部分,用户可以指定应用程序应该使用的默认麦克风。(用户通过右键单击在 Web 浏览器中运行的 Flash Player 内容来访问 Flash Player 设置面板。)如果您为 index
传递一个值,您可以引用与用户选择的麦克风不同的麦克风。在极少数情况下(例如,应用程序同时从两个麦克风捕获音频),您可能会使用 index
。在 Adobe AIR 中运行的内容也使用默认麦克风的 Flash Player 设置。
使用 Microphone.index
属性可以获取当前 Microphone 对象的索引值。然后,可以将该值传递给 Microphone 类的其他方法。
当 SWF 文件尝试访问 Microphone.getMicrophone()
返回的对象时(例如,在调用 NetStream.attachAudio()
时),Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问麦克风。(确保舞台大小至少为 215 x 138 个像素;这是 Flash Player 显示该对话框所需的最小大小。)
当用户对此对话框做出响应时,将调度 status
事件以表示用户的响应。还可以检查 Microphone.muted
属性以确定用户是允许还是拒绝访问麦克风。
如果 Microphone.getMicrophone()
返回 null
,则表明麦克风正由其它应用程序使用,或者系统上没有安装任何麦克风。要确定是否安装了任何麦克风,请使用 Microphones.names.length
。要显示 Flash Player 的“麦克风设置”面板(用户可从中选择 Microphone.getMicrophone
所引用的麦克风),请使用 Security.showSettings()
。
参数
index:int (default = -1 ) — 麦克风的索引值。
|
Microphone — 对用于捕获音频的 Microphone 对象的引用。
|
事件
status: — 在麦克风报告其状态时调度。如果 code 属性的值为 "Microphone.Muted" ,则表示用户拒绝 SWF 文件访问其麦克风。如果 code 属性的值为 "Microphone.Unmuted" ,则表示用户允许 SWF 文件访问其麦克风。
|
相关 API 元素
示例 ( 如何使用本示例 )
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 | () | 方法 |
public function requestPermission():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 24.0 |
为应用程序申请麦克风权限。
事件
PermissionStatus: — 当用户授予/拒绝所申请权限时调度。
|
setLoopBack | () | 方法 |
public function setLoopBack(state:Boolean = true):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
将麦克风捕获的音频传送到本地扬声器。
参数
state:Boolean (default = true )
|
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
setSilenceLevel | () | 方法 |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
设置可认定为有声的最低音量输入水平,以及实际静音前需经历的无声时间长度(可选)。
- 要完全禁止麦克风检测声音,请为
silenceLevel
传递值 100;这样就决不会再调度activity
事件了。 - 要确定麦克风当前所检测的音量,请使用
Microphone.activityLevel
。
Speex 具有语音活动检测功能 (VAD),在未检测到语音时将自动减小带宽。使用 Speex 编解码器时,Adobe 建议将静音级别设置为 0。
活动检测是检测声音级别在何时表示某人正在谈话的功能。当某人没有谈话时,由于不需要发送关联的音频流,因此可以节约带宽。此信息也可用于视频反馈,以便让用户知道他们(或其它人)没有谈话。
静音值与活动值直接对应。完全静音对应于活动值 0。持续噪音(根据当前增益设置可以检测到的噪音)对应于活动值 100。当增益得到适当调整之后,在您没有说话时,活动值将小于静音值;在您说话时,活动值将大于静音值。
此方法与 Camera.setMotionLevel()
类似;这两种方法都用于指定何时调度 activity
事件。不过,这两种方法在对发布流的影响上具有显著的差异:
Camera.setMotionLevel()
设计用于检测运动,并且不影响带宽用量。即使视频流未检测到运动,仍将发送视频。Microphone.setSilenceLevel()
设计用于优化带宽。在认为音频流被静音时,不发送任何音频数据。而改为发送一条表示静音已启动的消息。
参数
silenceLevel:Number — 激活麦克风并调度 activity 事件所需的音量。可接受值的范围为 0 到 100。
| |
timeout:int (default = -1 ) — 在没有活动的情况下经过的毫秒数,必须经过这么长的时间,Flash Player 或 Adobe AIR 才会认为声音已停止并调度 dispatch 事件。默认值为 2000(2 秒)。(注意:在签名中显示的默认值 -1 是一个内部值,用于表示 Flash Player 或 Adobe AIR 使用 2000。)
|
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
setUseEchoSuppression | () | 方法 |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
指定是否使用音频编解码器的回音抑制功能。除非用户已经在 Flash Player 的“麦克风设置”面板中选择了“降低回音”,否则默认值为 false
。
回音抑制是指降低音频回馈效果,当扬声器发出的声音由同一系统上的麦克风拾取时,将导致音频回馈。(这不同于回音消除,后者会完全移除反馈。在调用 getEnhancedMicrophone()
方法以使用回音消除功能时,将忽略 setUseEchoSuppression()
方法。)
通常情况下,当通过扬声器(而不是耳机)播放所捕获的声音时,建议使用回音抑制。如果您的 SWF 文件允许用户指定声音输出设备,则当他们指定使用扬声器并且还将使用麦克风时,您可能需要调用 Microphone.setUseEchoSuppression(true)
。
用户也可以在 Flash Player 的“麦克风设置”面板中调整这些设置。
参数
useEchoSuppression:Boolean — 一个 Boolean 值,表示是使用回音抑制 (true ) 还是不使用该功能 (false )。
|
引发
PermissionError — 应用程序不具备麦克风使用权限。
|
相关 API 元素
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; 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, 11:04 AM Z