【问题标题】:as3 determine if camera access was deniedas3 确定相机访问是否被拒绝
【发布时间】:2012-02-16 12:34:19
【问题描述】:

如何确定在 Flash 中是否拒绝访问摄像头和麦克风?

我可以拿到摄像头和麦克风,但我需要知道用户是否拒绝访问。

【问题讨论】:

    标签: flash actionscript-3 camera microphone


    【解决方案1】:

    附加一个状态事件监听器并检查相机是否静音,请参阅文档:

    在摄像机报告其状态时调度。在访问一个 相机,运行时显示一个隐私对话框让用户允许 或拒绝访问他们的相机。如果代码属性的值为 “Camera.Muted”,用户已拒绝允许 SWF 文件访问 用户的相机。如果代码属性的值为 “Camera.Unmuted”,用户已允许 SWF 文件访问 用户的相机。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#event:status

    flash.media.Microphone 也有同样的东西。

    【讨论】:

      【解决方案2】:

      因为如果您在设置面板中设置“记住”(右键单击),则不会弹出窗口,因此不会通知状态更改。

      所以,为了知道你的摄像头是否被允许(如果需要麦克风),你可以查看muted 属性:

      var camera:Camera = Camera.getCamera();
      if (camera.muted)
      {
          camera.addEventListener(StatusEvent.STATUS, handleCameraStatus, false, 0, true);
      }
      else
      {
          camAllowed = true;
          handleWebcam();
      }
      

      在您的状态处理程序中

      private function handleCameraStatus(e:StatusEvent):void
      {
          witch (e.code)
          {
              case 'Camera.Muted':
              {
                  camAllowed = false;
                  trace("Camera muted");
                  break;
              }
              case 'Camera.Unmuted':
              {
                  camAllowed = true;
                  trace("Camera unmuted");
                  handleWebcam();
                  break;
              }
          }
      }
      

      (如果需要,你可以对麦克风做同样的事情)

      那么,当你调用你的方法来处理时

      private function handleWebcam()
      {
          if (camAllowed && micAllowed)
          {
              // Do what you need when all is OK
          }
          else
          {
              // Either wait for the 2 status to switch to true, either you got a problem !? ...
          }
      }
      

      【讨论】:

        【解决方案3】:

        还有一个问题,即用户通过全局 Flash 播放器设置永久拒绝此站点的相机访问权限。在那种情况下camera.muted === true,但没有安全对话框,因此没有StatusEvent。 有一些方法可以检测到这一点,这里:Detecting user's camera settings

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-10
          • 2014-10-03
          相关资源
          最近更新 更多