Flash, AS3: есть ли способ получить текущие настройки / ограничения безопасности для микрофона / камеры программно? - PullRequest
4 голосов
/ 05 августа 2011

При использовании микрофона или камеры в приложении Flash пользователь должен предоставить доступ к устройствам на панели настроек безопасности.Решение о предоставлении доступа или об отказе в этом может быть запомнено при следующем запуске приложения, установив флажок «запомнить».

И когда пользователь установит «запомнить» свой выбор,панель безопасности не откроется при попытке доступа к указанным устройствам.Но как мы узнаем, был ли предоставлен доступ или нет?

Так есть ли способ проверить, разрешил ли пользователь доступ к микрофону или запретил его, а также проверить, было ли это решение установлено на один выстрел или запомнено в следующий раз?* Это было бы особенно полезно, когда пользователь ранее отказал в доступе и решил запомнить свое решение.Знание этого факта позволяет нам отобразить сообщение, сообщающее пользователю, что он должен щелкнуть, чтобы открыть панель безопасности и разрешить доступ, например, если он хочет использовать приложение.

1 Ответ

7 голосов
/ 07 августа 2011

Flash позволяет легко проверять текущие ограничения и довольно подробно описывает, какую информацию он имеет. Все это доступно в документации Camera на веб-сайте Adobe, но я разместил пример ниже, надеюсь, это поможет.

package 
{
    import flash.display.Sprite;
    import flash.events.StatusEvent;
    import flash.media.Camera;
    import flash.system.Security;
    import flash.system.SecurityPanel;

    public class CameraExample extends Sprite
    {
        private var _cam:Camera;

        public function CameraExample()
        {
            if (Camera.isSupported)
            {
                this._cam = Camera.getCamera();

                if (!this._cam)
                {
                    // no camera is installed
                }
                else if (this._cam.muted)
                {
                    // user has disabled the camera access in security settings

                    Security.showSettings(SecurityPanel.PRIVACY); // show security settings window to allow them to change camera security settings

                    this._cam.addEventListener(StatusEvent.STATUS, this._statusHandler, false, 0, true); // listen out for their new decision
                }
                else
                {
                    // you have access, do what you like with the cam object
                }
            }
            else
            {
                // camera is not supported on this device (iOS/Android etc)
            }
        }

        private function _statusHandler(e:StatusEvent):void
        {
            if (e.code == "Camera.Unmuted")
            {
                this._cam.removeEventListener(StatusEvent.STATUS, this._statusHandler);

                // they have allowed access to the camera, do what you like the cam object
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...