обнаружение Flash-доступной камеры без запроса пользователя на доступ к камере, если таковая существует - PullRequest
2 голосов
/ 11 октября 2010

Из объекта Flash я хотел бы иметь возможность обнаруживать присутствие веб-камеры, к которой пользователь может предоставить доступ, фактически не спрашивая пользователя, хотят ли ониПредоставление доступа.Это сделано для того, чтобы упростить большое приложение, которое имеет дополнительные функции, если веб-камера существует - если есть веб-камера, приложение отобразит несколько диалоговых окон, которые приводят к обычной подсказке безопасности камеры, но если у пользователя нет аппаратного обеспечения,Я хочу пропустить их вообще.Запрос доступа к камере до того, как эти диалоги не будут иметь смысла для пользователя.

Похоже, что невозможно вызвать Camera.getCamera() без запроса безопасности.Есть ли обходной путь?(Например, могу ли я, возможно, вызвать getCamera в скрытом объекте Flash и проверить его возвращаемое значение, или он блокируется, пока пользователь не подтвердит запрос безопасности?)

Ответы [ 3 ]

4 голосов
/ 12 октября 2010

Это работает с Haxe, но должно быть возможно и с ActionScript 3.

if (Camera.names.length != 0) {
  // user has camera
  // this triggers the access dialog
  var camera:Camera = Camera.getCamera();
}
else {
  // user has no camera
}
0 голосов
/ 14 октября 2010

Это может также работать: Capabilities.hasVideoEncoder;

Подход Camera.names.length, хотя и кажется более надежным (как предложено Бегемотом).

0 голосов
/ 11 октября 2010

Я не думаю, что существует обходной путь прямо во флэш-памяти или для любого веб-приложения, поскольку вся точка безопасности (путем ограничения доступа к устройствам пользователя) будет потеряна из-за этого.

Насколько я знаю, единственное решение вашей проблемы - спросить пользователя, прежде чем предлагать функцию обнаружения камеры.

Я мог бы звучать как облом, но что-то вроде:

  • Показать диалог "У вас есть камера?"- Да / Нет
  • Если да, отобразите диалоговое окно «Пожалуйста, предоставьте флэш-плееру доступ к камере ...» - ОК
  • Обнаружение камеры (с использованием метода getCamera)
  • Еслине удалось показать диалоговое окно
  • , иначе начните показывать все несколько диалогов, которые вы хотели.

Также иногда камера может присутствовать физически и не установлена.Поэтому, если пользователь не знает или камера недоступна по какой-либо причине, вам может понадобиться выяснить это.Так что для этого используйте

flash.media.Camera.names

и проверьте, пусто оно или нет.Или лучше просто взять несколько байтов данных с камеры пользователя и посмотреть, действительно ли они существуют и доступны.

...