Почему «mediaDevices.getUserMedia» медленнее в ios safari по сравнению с другими браузерами? - PullRequest
1 голос
/ 16 мая 2019

Я работаю над веб-приложением, которое записывает голосовые сообщения пользователей.По какой-то причине в ios safari требуется много времени для получения медиапотока для записи через mediaDevices.getUsearMedia.Я создал следующую тестовую страницу для измерения задержки в разных браузерах.Я был бы очень признателен, если бы кто-нибудь смог это понять.

IOS-сафари - от 600 до 800 мс

Chrome Desktop - 4 мс

Chrome Android - от 40 до 60 мс

<!DOCTYPE html>
<html>
<body>

 <h1 style="margin: 100px">get user media time test</h1>
 <div width="300px" height="300px" style="margin: 100px">
     <button id="btn" style="height:100px; width:250px; font-size:25px;">call getUserMedia</button>
 </div>

 <script>
    var btn = document.getElementById("btn");
    btn.onclick = myFunction;                

    function myFunction() {
    var time1 = new Date().getTime();
    navigator.mediaDevices.getUserMedia({ video:false ,audio: true})
        .then(function(stream) {
            var time2 = new Date().getTime();
            var diff = time2-time1;
            console.log("delay "+ diff + "ms") 
        })
        .catch(function(err) {
            console.log('Error gettingUserMedia: %s', err);
        });
    }   
 </script>

</body>
</html>

1 Ответ

2 голосов
/ 16 мая 2019

Каждый браузер реализует getUserMedia совершенно по-другому. Принимая во внимание, что getUserMedia - очень сложная операция, понятно, что при сравнении времени отклика каждого браузера существуют незначительные различия во времени.

Что на самом деле делает * 1005:

Настройки разрешений доступа ► Проверка разрешений для определенного сайта ► Запрос подтверждения пользователя (при необходимости) ► Доступ к оборудованию ► Моделирование элемента stream ► Обратный вызов.

Каждый из этих шагов был реализован разработчиками каждого браузера. Незначительные изменения в реализации могут привести к незначительным временным промежуткам ответа.

Также имейте в виду, что, хотя Google Chrome более щадящий, iOS придерживается строгой политики конфиденциальности пользователей, что может привести к увеличению времени отклика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...