Определение настроек камеры пользователя

У меня проблема с правильным определением настроек камеры пользователя.

Если пользователь выбрал «разрешить» и «запомнить», то параметр camera.muted имеет значение false (не отключен)

Однако, если пользователь выбрал «запретить» и «запомнить», то параметр camera.muted имеет значение true. (камера отключена пользователем)

НО, если пользователь ничего не выбрал и флажок «запомнить» снят, настройка camera.muted ТАКЖЕ ИСТИНА (камера снова отключена, но только потому, что кто-то еще не «разрешил» камеру)

Есть ли способ различать, когда пользователь решил навсегда запретить камеру для определенного сайта (установив флажок «запомнить»), ИЛИ когда он просто не разрешил камеру в первую очередь?


person redconservatory    schedule 28.02.2011    source источник


Ответы (4)


Насколько я могу судить, невозможно определить, был ли установлен флажок «запомнить» раньше. Обходной путь заключается в том, чтобы определить, отключена ли камера по запросу. Такие как:

camera = Camera.getCamera();
if (camera.muted) {
    // "remember" checkbox was not checked, or user needs to allow access
}
else {
    // "remember" checkbox was checked, access is already granted
}
person neave    schedule 14.04.2011

Сразившись с веб-камерами во flash, я бы посоветовал всем использовать эту библиотеку.

https://github.com/cataclysmicrewind/CameraDetection/

Вспышка + веб-камера должны = легко + круто. К сожалению, это боль + страдание.

person averydev    schedule 09.10.2011

Возможно, вы сможете использовать этот обходной путь, который может определить, открыто ли диалоговое окно безопасности.

https://gist.github.com/1266104, указанный в https://bugbase.adobe.com/index.cfm?event=bug&id=2993848

Тогда вы можете сделать что-то вроде:

var camera:Camera = Camera.getCamera();
if (camera.muted) {
    if (securityPanelIsClosed()) {
        // "remember" was checked and deny radio button is selected
    } else {
        // "remember" was not checked
    }
} else {
    // "remember" checkbox was checked, access is already granted
}
person Adam Ullman    schedule 26.06.2012

Будьте осторожны для всех, кто использует класс CameraDetection... Это работает только из-за обходного пути, который пытается отрисовать сцену, когда панель безопасности открыта. Вы столкнетесь с проблемами, если попытаетесь нарисовать сцену, когда на ней есть определенные элементы, которые представляют собой проблему песочницы безопасности (загруженные изображения из других мест или даже видео, которые в данный момент транслируются). В основном обходной путь будет автоматически продолжать давать сбой и давать ложные результаты.

В моем случае я застрял, пытаясь использовать CameraDetection, пока у меня было видео на сцене, которое транслировалось. Попытка/перехват происходит независимо от того, открыта ли панель безопасности.

person RYan    schedule 10.07.2013