jpegcam,拒绝访问后禁用捕获按钮

Ton*_*ose 5 flash webcam

在我的php项目中我使用了jpegcam,http://code.google.com/p/jpegcam/& 当我们加载网络摄像头捕获页面时,它要求Flash播放器权限"允许或拒绝",即使我拒绝了选项捕获按钮已启用.我想在加载时禁用捕获按钮并仅在用户允许权限时启用!

那么如何检查用户是否允许或拒绝在网站的隐私设置对话框中访问网络摄像头?!伙计们,任何帮助将不胜感激.. :)

Dav*_*ave 0

ActionScript 的Camera.muted属性正是您所需要的。您链接到的源创建了一个Camera名为 的私有对象camera。您可以将其公开或添加新方法来检查其muted属性;

final public function has_access( ) : Boolean {
    return !camera.muted;
}
Run Code Online (Sandbox Code Playgroud)

通常,您会隐藏/禁用该按钮,直到muted 变为 false(它不太可能再次变为 true;用户必须手动打开设置框并禁用访问)。

您还可以使用侦听器来避免不断检查该值;

final public function add_access_listener( myFunc : Function ) : void {
    camera.addEventListener( "status", myFunc ); // StatusEvent.STATUS
}
Run Code Online (Sandbox Code Playgroud)

它将像这样使用:

myWebcam.add_access_listener( myAccessFunc );
function myAccessFunc( ev : StatusEvent ) : void {
    if( ev.code == "Camera.Unmuted" ) {
        // video became available, enable button
    } else {
        // video became unavailable, disable button
    }
}
// remember that the user could have granted persistent permission
// (i.e. the status will be unmuted without actually changing)
if( myWebcam.has_access( ) ) {
    // video is already available, enable button
} else {
    // video is not yet available, disable button
}
Run Code Online (Sandbox Code Playgroud)

为了避免任何可能的内存泄漏,如果您删除了相机,您也应该调用removeEventListener,但该库似乎并没有被设计为这样做(并且不会删除它自己的侦听器)。