在我的小 Flash 应用程序中,我需要知道用户何时授予对相机的访问权限。记录是否发生这种情况的方法是监听相机的“未静音”事件,如下所示:
private function handleCameraStatus(event:StatusEvent):void {
try {
_logger.log("Camera status event {code:" + event.code + ", type:" + event.type + "}");
switch (event.code) {
case "Camera.Muted":
_eventHandler.raiseError("Camera became unavailable");
break;
case "Camera.Unmuted":
_eventHandler.raiseEvent("onUserMediaRetrieved", _mic, _cam);
}
} catch (e:Error) {
_eventHandler.raiseError("Error handling connection status", e);
}
}
这是 Adobe 网站上多个地方推荐的方法,例如,这里和这里。
这种方法的问题在于,如果用户已将该站点添加到他或她的受信任站点列表中(以便自动授予访问权限,而无需在 Adobe Flash Player 设置对话框中单击“允许”),则该Camera.Unmuted
事件永远不会被解雇。(至少,这是我在几个不同网站上的测试所表明的。)这使得聆听Camera.Unmuted
或多或少无法确定您是否真的可以使用相机。
关于如何做到这一点的任何其他建议?