Восстановление публикации с выбранной камеры в iOS Safari¶
В iOS по умолчанию запрещена фоновая публикация видео. Поэтому при сворачивании окна браузера iOS Safari в фон браузер отключает видеоэлемент, с которого транслируется камера, от камеры. Затем, при разворачивании окна браузера на передний план, в зависимости от версии iOS, браузер может либо не подключить камеру к видеоэлементу, либо подключить не ту камеру, которая была выбрана до того.
В этом случае нужно обработать событие visibilitychange
для документа и, если HTML страница стала видимой (то есть окно браузера развернулось на передний план), принудительно выбрать камеру
-
Регистрация обработчика события
visibilitychange
code
-
Выбор камеры при разворачивании окна браузера
code
function onVisibilityChanged() { if (Browser.isiOS() && Browser.isSafariWebRTC() && document.hidden !== undefined) { // iOS Safari may change camera when rising from the background, use chosen one explicitly if (publishStream && !document.hidden) { publishStream.switchCam($('#videoInput').val()).then(function(id) { console.log("Switched explicitly to camera " + id); $('#videoInput option:selected').prop('selected', false); $("#videoInput option[value='"+ id +"']").prop('selected', true); }).catch(function(e) { console.log("Error " + e); }); } } }
Данный метод работает с WebSDK 2.0.248 на iOS Safari 12.5.7 и выше.