Flash Player 6。
Camera.get([index
])
注意:正确的语法为 Camera.get()
。若要将 Camera 对象分配给一个变量,请使用类似active_cam = Camera.get()
的语法。
index
一个从零开始的可选整数,指定要获取的摄像机,该整数根据 Camera.names
属性返回的数组确定。若要获取默认的摄像机(建议用于大多数应用程序),请省略此参数。
index
,则此方法返回对默认摄像机的引用;或者,如果默认摄像机正由其它应用程序使用,则此方法返回对第一个可用摄像机的引用。(如果安装了多个摄像机,则用户可以在 Flash Player 的“摄像机设置”面板中指定默认的摄像机。)如果没有可用摄像机或没有安装任何摄像机,则该方法返回 null
。index
,则该方法返回对请求的摄像机的引用;如果请求的摄像机不可用,则返回 null
。 方法;为捕获视频返回对 Camera 对象的引用。若要实际开始捕获视频,必须将 Camera 对象附加到 Video 对象(请参见 Video.attachVideo()
)。
与使用 new
构造函数创建的对象不同,对 Camera.get()
的多个调用引用同一摄像机。因此,如果您的脚本包含 first_cam = Camera.get()
和 second_cam = Camera.get()
这两行,则 first_cam
和 second_cam
引用同一(默认)摄像机。
通常,不应传递 index
的值;只使用 Camera.get()
来返回对默认摄像机的引用。通过“摄像机设置”面板(将在本节的后面进行讨论),用户可以指定 Flash 应使用的默认摄像机。如果您传递 index
的值,则您可能会尝试引用非用户指定的其它摄像机。您可能在极少的情况下使用 index
;例如,您的应用程序同时从两个摄像机捕获视频。
在一个 SWF 文件尝试访问 Camera.get()
返回的摄像机时,Flash Player 显示“隐私”对话框,用户可从中选择是允许还是拒绝对摄像机的访问。(请确保舞台大小至少为 215 x 138 像素;这是 Flash 显示该对话框所需的最小大小。)
当用户对此对话框做出响应时,Camera.onStatus
事件处理函数将返回指示用户响应的信息对象。若要不处理此事件处理函数就确定用户是拒绝还是允许对摄像机的访问,请使用 Camera.muted
属性。
用户也可以为特定域指定永久隐私设置,方法是在 SWF 文件播放过程中右击 (Windows) 或按住 Control 键单击 (Macintosh),选择“设置”,打开“隐私”面板,然后选择“记住”。
您不能使用动作脚本来设置用户的 Allow 或 Deny 值,但可以通过使用 System.showSettings(0)
来为用户显示“隐私”面板。如果用户选择“记住”,则 Flash Player 不再为该域的影片显示“隐私”对话框。
如果 Camera.get
返回 null
,则摄像机正由其它应用程序使用,或者在系统上没有安装任何摄像机。若要确定是否安装了任何摄像机,请使用 Camera.names.length
。若要显示 Flash Player 的“摄像机设置”面板(让用户选择由 Camera.get()
引用的摄像机),请使用System.showSettings(3)
。
扫描硬件以找到摄像机需要花一些时间。在 Flash 找到至少一个摄像机后,在该播放器实例的生存期内不再扫描硬件。不过,如果 Flash 没有找到任何摄像机,则它在每次调用 Camera.get
时都进行扫描。这在用户忘记连接摄像机时非常有用;如果您的 SWF 文件提供调用 Camera.get
的“重试”按钮,则用户不必重新启动该 SWF 文件,Flash 即可找到摄像机。
下面的示例在舞台上名为 my_video
的 Video 对象内本地捕获和显示视频。
var my_cam = Camera.get(); my_video.attachVideo(myCam);
Camera.index、Camera.muted、Camera.names、Camera.onStatus、Camera.setMode()、
System.showSettings()、Video.attachVideo()