当 SWF 文件试图使用 Camera.get() 或 Microphone.get() 方法访问用户的摄像头或麦克风时,Flash Player 将显示一个“隐私”对话框,用户可以在该对话框中允许或拒绝对其摄像头或麦克风的访问。用户和管理用户还可以通过 mms.cfg 文件、“设置 UI”和“设置管理器”中的控制基于站点或全局禁用摄像头访问(请参阅管理员控制和用户控制)。用户加以限制后,Camera.get() 和 Microphone.get() 方法均返回 null 值。可以使用 Capabilities.avHardwareDisable 属性确定是已经通过管理方式禁止了 (true) 对摄像头和麦克风的访问,还是允许 (false) 对摄像头和麦克风的访问。
System.setClipboard() 方法允许 SWF 文件用纯文本字符串替换剪贴板内容。这不会带来任何安全性风险。为避免因剪切或复制到剪贴板的密码和其它敏感数据所带来的风险,并未提供相应的 getClipboard() 方法。
运行于 Flash Player 中的应用程序只能监视在其焦点以内发生的键盘和鼠标事件。运行于 Flash Player 中的内容不能检测其它应用程序中的键盘或鼠标事件。
//摄像头
flash.media.Camera
Camera.getCamera();
//麦克风
flash.media.Microphone;
Microphone.getMicrophone();
flash.system.Capabilities;
Capabilities.avHardwareDisable;
flash.system.System
System.setClipboard("");
flash.media.Camera
使用 Camera 类可从连接到运行 Flash Player 的计算机的摄像头中捕获视频。使用 Video 类可在本地监视视频。使用 NetConnection 和 NetStream 类可将视频传输到 Flash Media Server。Flash Media Server 可以将视频流发送到其它服务器,并向运行 Flash Player 的其它客户端广播此视频流。
有关捕获音频的信息,请参阅 Microphone 类。
重要说明:Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问摄像头。确保应用程序窗口大小至少为 215 x 138 个像素;这是显示该对话框所需的最小大小。
要创建或引用 Camera 对象,请使用 getCamera() 方法。
-
另请参阅:
- flash.media.Microphone 语言版本:
- 3.0 Player 版本:
- Flash 9, AIR 1.0
flash.media.Microphone
-
使用 Microphone 类可从连接到运行 Flash Player 或 Adobe AIR 的计算机的麦克风中捕获音频。使用 Microphone 类可在本地监视音频。使用 NetConnection 和 NetStream 类可将音频传输到 Flash Media Server。Flash Media Server 可以将音频发送到其它服务器,并向运行 Flash Player 或 Adobe AIR 的其它客户端广播此音频。
有关捕获视频的信息,请参阅 Camera 类。
重要说明:Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问麦克风。请确保应用程序窗口大小至少为 215 x 138 像素,这是显示对话框所需的最小尺寸。
要创建或引用 Microphone 对象,请使用 Microphone.getMicrophone() 方法。
警告:对于应用程序安全沙箱以外的内容,会显示“隐私”对话框,用户可以从中选择是允许还是拒绝对麦克风的访问。此对话框要求应用程序窗口大小至少为 215 x 138 个像素。对于应用程序安全沙箱内的 Adobe AIR 内容,将允许访问麦克风,且不再显示该对话框。
- flash.media.Camera 语言版本:
- 3.0 Player 版本:
- Flash 9
另请参阅:
flash.system.Capabilities
-
Capabilities 类提供一些属性,这些属性描述了承载 SWF 文件的系统和播放器。例如,手机屏幕可以有 100 个正方形像素(黑白),而 PC 屏幕则可以有 1000 个正方形像素(彩色)。通过使用 Capabilities 对象来确定用户所拥有的设备的类型,可以向尽可能多的用户提供适当的内容。如果熟悉设备的功能,则可以通知服务器发送合适的 SWF 文件,或是通知 SWF 文件变更其播放方式。 Capabilities 类提供一些属性,这些属性描述了承载 HTML 内容(和 SWF 内容)的系统和运行时。通过使用 Capabilities 对象来确定用户所拥有的计算机的类型,可以向尽可能多的用户提供适当的内容。了解计算机的功能后,您可以加载适当的内容或使用代码更改其呈现方式。
但 Adobe AIR 的有些功能没有作为 Capabilities 类的属性列出。这些功能是其它类的属性:
| 属性 | 说明 |
|---|---|
NativeApplication.supportsDockIcon | 操作系统是否支持系统停靠图标。 |
NativeApplication.supportsMenu | 操作系统是否支持全局应用程序菜单栏。 |
NativeApplication.supportsSystemTrayIcon | 操作系统是否支持系统任务栏图标。 |
NativeWindow.supportsMenu | 操作系统是否支持窗口菜单。 |
NativeWindow.supportsTransparency | 操作系统是否支持透明窗口。 |
请勿 使用 Capabilities.os 或 Capabilities.manufacturer 来根据操作系统确定功能。以操作系统来决定功能是个不良习惯,因为如果应用程序没有考虑到所有潜在的目标操作系统,这会产生问题。建议使用与要测试的功能相对应的属性。
可使用 GET 或 POST HTTP 方法发送功能信息,这些信息作为一个 URL 编码的字符串存储在 Capabilities.serverString 属性中。下例显示了支持 MP3、具有 1600 x 1200 像素分辨率、运行 Windows XP 并且安装有输入法编辑器 (IME) 的计算机的服务器字符串:
A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&
R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
L=en&PT=External&AVD=f&LFD=f&WD=f&IME=t
下表列出了 Capabilities 类的属性和相应的服务器字符串:
| Capabilities 类属性 | 服务器字符串 |
|---|---|
avHardwareDisable | AVD |
hasAccessibility | ACC |
hasAudio | A |
hasAudioEncoder | AE |
hasEmbeddedVideo | EV |
hasIME | IME |
hasMP3 | MP3 |
hasPrinting | PR |
hasScreenBroadcast | SB |
hasScreenPlayback | SP |
hasStreamingAudio | SA |
hasStreamingVideo | SV |
hasTLS | TLS |
hasVideoEncoder | VE |
isDebugger | DEB |
language | L |
localFileReadDisable | LFD |
manufacturer | M |
maxLevelIDC | ML |
os | OS |
pixelAspectRatio | AR |
playerType | PT |
screenColor | COL |
screenDPI | DP |
screenResolutionX | R |
screenResolutionY | R |
version | V |
还有一个 WD 服务器字符串,用于指定是否禁用无窗口模式。如果与 Web 浏览器不兼容或用户在 mms.cfg 文件中进行了相应设置,则可以在 Flash Player 中禁用无窗口模式。没有对应的 Capabilities 属性。
Capabilities 类的所有属性都是只读的。
-
语言版本:
- 3.0 Player 版本:
- Flash 9, AIR 1.0
-
-
-
-
-
flash.system.System
-
System 类包含与发生在用户计算机上的某些操作相关的属性,如具有共享对象的操作、摄像头和麦克风的本地设置和剪贴板的使用。
其它属性和方法在 flash.system 包的其它类中:Capabilities 类、IME 类和 Security 类。
此类只包含静态方法和属性。无法创建 System 类的新实例。
-
另请参阅:
- flash.system.Security
- flash.events.IMEEvent 语言版本:
- 3.0 Player 版本:
- Flash 9
flash.media.Camera.getCamera(name:String=null):Camera
-
返回对用于捕获视频的 Camera 对象的引用。要开始捕获视频,必须将 Camera 对象附加到 Video 对象(请参阅
Video.attachCamera() )。要将视频传输到 Flash Media Server,请调用
NetStream.attachCamera() 以将 Camera 对象附加到 NetStream 对象。
对 getCamera() 方法的多次调用会引用相同的摄像头驱动程序。因此,如果代码包含诸如 firstCam:Camera = getCamera() 和 secondCam:Camera = getCamera() 之类的代码,则 firstCam 和 secondCam 会引用同一个摄像头,该摄像头为用户的默认摄像头。
通常不应为 name 参数传递值,而只是使用 getCamera() 来返回对默认摄像头的引用。通过“摄像头设置”面板(将在本节的后面进行讨论),用户可以指定 Flash Player 应使用的默认摄像头。
您不能使用 ActionScript 来设置用户用于访问摄像头的 Allow 或 Deny 权限设置,但可以显示“Adobe Flash Player 设置”摄像头设置对话框,用户可以在其中设置摄像头权限。当使用 attachCamera() 方法的 SWF 文件尝试将 getCamera() 方法返回的摄像头附加到 Video 或 NetStream 对象时,Flash Player 将显示一个对话框,用户可从中选择是允许还是拒绝访问摄像头。(确保应用程序窗口大小至少为 215 x 138 个像素;这是 Flash Player 显示该对话框所需的最小大小。)当用户对摄像头设置对话框做出响应时,Flash Player 将在指示用户响应的 status 事件中返回信息对象:Camera.muted 指示用户拒绝访问摄像头;Camera.Unmuted 指示用户允许访问摄像头。要在不处理 status 事件的情况下确定用户是拒绝还是允许访问摄像头,请使用 muted 属性。
用户可以为特定的域指定永久保密性设置,方法是在 SWF 文件播放时右键单击 (Windows 和 Linux) 或按住 Control 的同时单击 (Macintosh),选择“设置”,打开“保密性”对话框,然后选择“记住”。如果用户选择“记住”,Flash Player 将不再询问用户是允许还是拒绝此域的 SWF 文件访问摄像头。
注意:如果用户已通过选择“Flash Player 设置”对话框中的“记住”来拒绝访问摄像头,则 attachCamera() 方法将不会调用该对话框来允许或拒绝对摄像头的访问。在这种情况下,您可以通过使用 Security.showSettings(SecurityPanel.PRIVACY) 为用户显示“Flash Player 隐私”面板,提示用户更改 Allow 或 Deny 设置。
如果 getCamera() 返回 null,则表明摄像头正由另一个应用程序使用,或者系统上没有安装摄像头。要确定是否安装了任何摄像头,请使用 names.length 属性。要显示 Flash Player 的“摄像头设置”面板(让用户选择将由 getCamera() 引用的摄像头),请使用 Security.showSettings(SecurityPanel.CAMERA)。
扫描硬件以找到摄像头需要花一些时间。当 Flash Player 找到至少一个摄像头后,在该播放器实例的生存期内将不再扫描硬件。不过,如果 Flash Player 没有找到任何摄像头,则在每次调用 getCamera 时都进行扫描。这在用户忘记连接摄像头时非常有用;如果 SWF 文件提供了调用 getCamera 的“重试”按钮,则用户不必重新启动该 SWF 文件,Flash Player 即可找到摄像头。
-
参数:
-
name 指定要获取哪一个摄像头,这由
names属性返回的数组确定。对于大多数应用程序,可省略此参数来获取默认摄像头。要为此参数指定值,请使用 Camera.names 数组内从零开始的索引位置的字符串表示形式。例如,要在数组中指定第三个摄像头,请使用Camera.getCamera("2")。
返回:
-
如果未指定
name参数,则此方法返回对默认摄像头的引用;或者,如果默认摄像头正由另一个应用程序使用,则此方法返回对第一个可用摄像头的引用。(如果安装了多个摄像头,则用户可以在 Flash Player 的“摄像头设置”面板中指定默认的摄像头。)如果没有可用摄像头或没有安装摄像头,则该方法返回null。
另请参阅:
- index
- muted
- names
- setMode()
- status
- Video.attachCamera() 语言版本:
- 3.0 Player 版本:
- Flash 9, AIR 1.0
flash.media.Microphone.getMicrophone(index:int=-1):Microphone
-
返回对用于捕获音频的 Microphone 对象的引用。要开始捕获音频,您必须将 Microphone 对象附加到 NetStream 对象(请参阅
NetStream.attachAudio())。
对 Microphone.get() 的多次调用会引用同一个麦克风。因此,如果代码包含 mic1 = Microphone.get() 和 mic2 = Microphone.get() 行,则 mic1 和 mic2 将引用同一个(默认)麦克风。
如果要获取默认的麦克风,则需要使用 -1 调用 getMicrophone()。如果调用此方法时不使用任何参数,则会返回列表中的第一个麦克风。
可以使用 index 属性来获取当前 Microphone 对象的索引值。然后,可以将该值传递给 Microphone 类的其它方法。
通常,不应传递 index 的值。只需使用 Microphone.getMicrophone() 方法即可返回对默认麦克风的引用。通过使用“麦克风设置”面板,用户可以指定应用程序应使用的默认麦克风。如果传递 index 的值,则可能会引用非用户选择的其它麦克风。在极少数情况下(例如,应用程序同时从两个麦克风捕获音频),您可能会使用 index。
当 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 麦克风的索引值。 返回:
- 对用于捕获音频的 Microphone 对象的引用。 另请参阅:
- Microphone.status
- flash.net.NetStream.attachAudio()
- flash.system.Security.showSettings()
- 3.0 Player 版本:
- Flash 9
语言版本:
flash.system.Capabilities.avHardwareDisable():Boolean
-
[只读] 指定对用户的摄像头和麦克风的访问是已经通过管理方式禁止 (
true) 还是允许 (
false)。服务器字符串为
AVD。
对于 Adobe AIR™ 中的内容,此属性仅适用于应用程序安全沙箱以外的安全沙箱中的内容。应用程序安全沙箱中的内容始终可以访问用户的摄像头和麦克风。
-
另请参阅:
- flash.media.Camera.getCamera()
- flash.media.Microphone.getMicrophone()
- Security.showSettings()
-
语言版本:
- 3.0 Player 版本:
- Flash 9, AIR 1.0
flash.system.System.setClipboard(string:String):void
-
用指定的文本字符串替换剪贴板的内容。当因用户事件(例如,键盘或鼠标事件处理函数)而调用此方法时,此方法可以在任何安全上下文中使用。
此方法是为 Flash Player 9 中运行的 SWF 内容提供的。它只允许向剪贴板添加 String 内容。在 AIR 应用程序中,Flash Player 10 内容和应用程序安全沙箱中的内容可以调用 Clipboard.setData() 方法。
-
参数:
- string 要放置在系统剪贴板上的纯文本字符串,用于替换系统剪贴板上的当前内容(如果有)。 另请参阅:
- flash.desktop.Clipboard 语言版本:
- 3.0 Player 版本:
- Flash 9
本文详细解释了如何在Flash Player中访问用户的摄像头和麦克风,包括隐私对话框、权限设置、方法调用及注意事项。了解如何正确处理摄像头和麦克风的访问请求,确保用户体验与应用功能的实现。
2万+

被折叠的 条评论
为什么被折叠?



