#javascript #firefox #webrtc #media
#javascript #firefox #webrtc #Медиафайлы
Вопрос:
Я дал разрешение разрешить микрофон в моем домене. Мы используем наш домен на нескольких вкладках. Я могу получать локальные медиа (микрофон) при доступе на той же вкладке. Но я не могу получить локальные медиа для WebRTC на другой вкладке (тот же домен), не заходя на вкладку.Доступ к localmedia предоставляется только после посещения вкладки.
Это сделано намеренно для обеспечения безопасности и конфиденциальности? . Есть ли какой-нибудь способ решить мою проблему?
Причина: ограничить ресурсы, используемые для сеанса WebRTC. Мы сохраняем сеанс WebRTC на одной вкладке для нашего домена и используем только этот ресурс для всех вкладок для совершения вызовов.
Попытался установить микрофон-разрешить как атрибут iframe. Но это не решило проблему. Однако в браузере GoogleChrome он работает нормально. Если я открываю новую вкладку (T1) и запускаю webrtc в ней и вызываю webrtc с другой вкладки (T2), даже не заходя на вкладку T1, вызов подключается в Chrome, но не в firefox, если я не посещаю T1.
Примечание: он не запрашивает разрешения на разрешение микрофона в домене, он получает его автоматически . Просто это происходит только после того, как я захожу на вкладку.Я уже предоставил разрешение на доступ к микрофону в своем домене.
Комментарии:
1. Вот почему и намеренно. Каков ваш вариант использования? За кем вы хотите шпионить? 😉
2. В нашем приложении вызывается WebRTC, и из-за некоторых ограничений у нас не может быть более 5 подключений. Следовательно, у нас есть одно соединение, и мы разделяем его между вкладками. Предположим, что пользователь открыл несколько вкладок и инициировал вызов с одной вкладки, на которой нет соединения, тогда вызов не будет подключен, пока пользователь не посетит вкладку, на которой есть соединение. Проблема в том, что пользователь не знает о вкладке с подключением и, следовательно, может вообще не знать об этом.
Ответ №1:
Это сделано намеренно для обеспечения безопасности и конфиденциальности?
Да, это сделано специально, чтобы фоновые вкладки не включали камеру или микрофон волей-неволей, чтобы шпионить за пользователями. Потому что это жутко. Я считаю, что Safari работает так же.
Спецификация getUserMedia недавно сделала это требованием:
- Шаг 6.1. «Агент пользователя ДОЛЖЕН подождать, чтобы перейти к следующему шагу, пока ответственный документ текущего объекта настроек не станет полностью активным и не будет сфокусирован».*
Поэтому я ожидаю, что Chrome скоро последует этому примеру.
Есть ли какой-нибудь способ решить мою проблему?
Это сильно ослабило бы уверенность.
Пользователи могут быть уверены, что только текущая вкладка может включать камеру или микрофон.
Если я открываю новую вкладку (T1) и запускаю webrtc в ней и вызываю webrtc с другой вкладки (T2), даже не заходя на вкладку T1, вызов подключается в Chrome, но не в firefox, если я не посещаю T1.
Это проблема с подключением RTCPeerConnection, которая не связана с getUserMedia.
Обходной путь заключается в том, чтобы не блокировать установление соединения при доступе к микрофону.
Нет причин, по которым вы не можете сначала подключиться, а затем добавить микрофон.
Или получите mic заранее и подключитесь позже. В принципе, два действия не должны совпадать или блокировать друг друга.
Комментарии:
1. Соединение WebRTC уже будет присутствовать . Разрешение на микрофон уже получено и для домена. Проблема в том, что доступ к мультимедиа предоставляется автоматически только после того, как пользователь сфокусирует вкладку.
2. Пользователи могут быть уверены, что только текущая вкладка может включать камеру или микрофон — это проясняет проблему . Спасибо