Таким образом, стандартный способ, который navigator.webkitGetUserMedia используется, как например:Google Chrome webkitGetUserMedia - что, если пользователь игнорирует диалог?
function success() {
console.log('User accepted');
}
function deny() {
console.log('User rejected');
}
navigator.webkitGetUserMedia({video: true, audio: true}, success, deny);
Сайт Я разрабатываю абсолютно необходимо использовать веб-камеры пользователя и микрофон (на самом деле, с использованием Flash, но это, кажется, идет через этот API сейчас), поэтому я стараюсь сделать все, чтобы пользователь всегда знал, что им нужно, чтобы щелкнуть, чтобы сайт работал.
- Если не вызывается ни одна из функций, предположим, что диалог отображается, и отображает инструкции пользователю.
- Если deny вызывается, объясните, что необходим доступ к веб-камере, и покажите им, что они могут щелкнуть значок камеры в строке URL-адреса Chrome, чтобы изменить свое решение.
- Конечно, если успех вызван, то пользователь принял и продолжит, как обычно.
Это кикер; и вы могли бы следовать, вставив вышеуказанный Javascript на любой сайт, который вам нравится (в Chrome). Если пользователь переходит на новую веб-страницу или обновляет текущую страницу без принятия, отклонения или отклонения выпадающего списка, то они не будут видеть диалог разрешений для текущего домена для сеанса браузера.
Звонок navigator.webkitGetUserMedia(...)
снова будет не показать диалог с разрешениями, и значок камеры даже не появится в строке URL. Консоль даже не регистрирует «Пользователь отклонен». Более того, для многих пользователей это выпадающее меню очень легко случайно игнорировать. Единственное исправление заключается в том, чтобы полностью закрыть браузер и повторно открыть его (или вручную переходить через сложные меню настроек, которые мы НЕ хотим принуждать наших пользователей).
Могу ли я подтвердить, что кто-нибудь здесь, является ли это «каким-то образом», или если что-то мне не хватает?
Он работает для меня (Chrome 27 на Windows Vista). Если я обновляю страницу, панель разрешений снова поднимается. Если я перейду к другой странице, а затем вернусь к исходной странице, она снова появится. Возможно, проверьте, у вас уже есть набор исключений для этого имени хоста: chrome: // settings/contentExceptions # media-stream –
Попробуйте этот способ: Идите сюда: http://www.testwebcam.com/, затем нажмите Разрешить внутри Flash , Затем не нажимайте баннер Chrome вообще, но обновляйте страницу. Еще раз нажмите Разрешить на Flash - нет баннера. Нет исключений сайтов; мы каждый раз очищаем это меню для повторной проверки. – Katana314
Я никогда не получаю разрешение на этой странице - просто диалог разрешения Flash.Я могу специально заблокировать медиа-разрешения в Chrome для этого домена, и это не будет иметь никакого значения. В настройках он говорит, что «камера Adobe Flash Player и исключения для микрофона различны». поэтому я предполагаю, что это имеет смысл. Я предполагаю, что для вас все по-другому - какую ОС вы используете? –