摄像头、麦克风、剪贴板、鼠标和键盘访问

当 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 中的内容不能检测其它应用程序中的键盘或鼠标事件。


http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c99.html


 

//摄像头
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.osCapabilities.manufacturer 来根据操作系统确定功能。以操作系统来决定功能是个不良习惯,因为如果应用程序没有考虑到所有潜在的目标操作系统,这会产生问题。建议使用与要测试的功能相对应的属性。

可使用 GETPOST 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() 之类的代码,则 firstCamsecondCam 会引用同一个摄像头,该摄像头为用户的默认摄像头。

通常不应为 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() 行,则 mic1mic2 将引用同一个(默认)麦克风。

如果要获取默认的麦克风,则需要使用 -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



























 

 

你可能感兴趣的:(应用服务器,Security,Flash,Adobe,AIR)