У меня проблема с правильным определением настроек камеры пользователя.
Если пользователь выбрал "разрешить" и "запомнить", то параметр camera.muted имеет значение false (не отключен)
Однако, если пользователь выбрал "запретить" и "запомнить", то параметр camera.muted имеет значение true. (камера отключена пользователем)
НО, если пользователь ничего не выбрал и флажок "запомнить" снят, настройка camera.muted ТАКЖЕ ИСТИНА (камера снова отключена, но только потому, что кто-то еще не "разрешил" камеру)
Есть ли способ различать, когда пользователь решил навсегда запретить камеру для определенного сайта (установив флажок "запомнить"), ИЛИ когда он просто не разрешил камеру в первую очередь?
Ответ 1 · рейтинг 3 · neave
Насколько я могу судить, невозможно определить, был ли установлен флажок "запомнить" раньше. Обходной путь заключается в том, чтобы определить, отключена ли камера по запросу. Такие как:
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
}
Ответ 3 · Adam Ullman
Возможно, вы сможете использовать этот обходной путь, который может определить, открыто ли диалоговое окно безопасности.
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
}
Ответ 4 · RYan
Будьте осторожны для всех, кто использует класс CameraDetection... Это работает только из-за обходного пути, который пытается отрисовать сцену, когда панель безопасности открыта. Вы столкнетесь с проблемами, если попытаетесь нарисовать сцену, когда на ней есть определенные элементы, которые представляют собой проблему песочницы безопасности (загруженные изображения из других мест или даже видео, которые в данный момент транслируются). В основном обходной путь будет автоматически продолжать давать сбой и давать ложные результаты.
В моем случае я застрял, пытаясь использовать CameraDetection, пока у меня было видео на сцене, которое транслировалось. Попытка/перехват происходит независимо от того, открыта ли панель безопасности.