Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: redconservatoryОтветов: 4

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

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

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

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

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

cameraactionscript-3

Ответы

Ответ 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
}

Ответ 2 · рейтинг 1 · averydev

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

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

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

Ответ 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, пока у меня было видео на сцене, которое транслировалось. Попытка/перехват происходит независимо от того, открыта ли панель безопасности.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы