2012-01-23 1 views

ответ

6

Приложить слушатель событий состояния и проверить, если камера отключается, см Документов

Отправляется, когда камера сообщает о своем состоянии. Перед доступом к камере среда выполнения отображает диалоговое окно «Конфиденциальность», позволяющее пользователям разрешать или запрещать доступ к их камере. Если значение свойства кода равно «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 имеет то же самое тоже.

4

Причина, если вы установили «Запомнить» на панели настроек (щелкните правой кнопкой мыши), всплывающее окно не будет, и поэтому уведомление об изменении статуса не будет.

Итак, чтобы знать, если ваша камера имеет право (и микрофон в случае необходимости), вы можете проверить 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 !? ... 
    } 
} 
1

Существует также проблема, когда пользователь отказывается от доступа камеры к этому сайту навсегда с помощью глобальных настроек флеш-плеера. В этом случае camera.muted === true, но нет диалогового окна безопасности и, следовательно, нет StatusEvent. Есть несколько способов узнать это, здесь: Detecting user's camera settings