Как определить, был ли запрещен доступ к камере и микрофону во Flash?as3 определить, было ли отказано в доступе камеры
Я могу получить камеру и микрофон, но мне нужно знать, запретил ли пользователь доступ.
Как определить, был ли запрещен доступ к камере и микрофону во Flash?as3 определить, было ли отказано в доступе камеры
Я могу получить камеру и микрофон, но мне нужно знать, запретил ли пользователь доступ.
Приложить слушатель событий состояния и проверить, если камера отключается, см Документов
Отправляется, когда камера сообщает о своем состоянии. Перед доступом к камере среда выполнения отображает диалоговое окно «Конфиденциальность», позволяющее пользователям разрешать или запрещать доступ к их камере. Если значение свойства кода равно «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 имеет то же самое тоже.
Причина, если вы установили «Запомнить» на панели настроек (щелкните правой кнопкой мыши), всплывающее окно не будет, и поэтому уведомление об изменении статуса не будет.
Итак, чтобы знать, если ваша камера имеет право (и микрофон в случае необходимости), вы можете проверить muted
attribut:
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 !? ...
}
}
Существует также проблема, когда пользователь отказывается от доступа камеры к этому сайту навсегда с помощью глобальных настроек флеш-плеера. В этом случае camera.muted === true
, но нет диалогового окна безопасности и, следовательно, нет StatusEvent
. Есть несколько способов узнать это, здесь: Detecting user's camera settings