Не удалось завершить операцию из-за ошибки c004e005

У меня есть функция задержки, как показано ниже:

 var delayToggle = (function () {
        var timer = 0;
        return function (callback, ms) {
            clearTimeout(timer);
            timer = setTimeout(callback, ms);
        };
    })();

Я вызываю это, когда нажимаю кнопку переключения видео/аудио. Вызов его следующим образом:

delayToggle(toggleMyVideo, 500);

На Edge выдает такую ​​ошибку:

Не удалось завершить операцию из-за ошибки c004e005.

Я не уверен, что это за ошибка и как ее исправить. Любые идеи?


person A.Blanc    schedule 21.02.2019    source источник
comment
Если вы сделаете простой вызов, например delayToggle(function(){}, 500);, он сработает?   -  person nick zoum    schedule 21.02.2019
comment
Возможный дубликат код ошибки Unknown Edge #c004e005   -  person Adrian    schedule 21.02.2019
comment
@Adriani6 OP также спрашивает, почему это происходит, и ответа на этот вопрос там нет.   -  person nick zoum    schedule 21.02.2019
comment
@nickzoum Да, это работает. хм, может ли эта ошибка быть связана с этим предупреждением, которое я получаю: тайм-аут для addRemoteCandidate. Рассмотреть возможность отправки уведомления об окончании списка кандидатов?   -  person A.Blanc    schedule 21.02.2019
comment
Я предполагаю, что это как-то связано с toggleMyVideo, а не с кодом выше.   -  person epascarello    schedule 21.02.2019
comment
@epascarello отлично работает в Chrome.   -  person A.Blanc    schedule 21.02.2019
comment
Я думал, что с этой функцией проблем нет. Однако, если я переключаюсь на Edge, я закрываю все соединения webRTC для этого участника, а затем перезапускаю процесс, как если бы участник только что присоединился. Это код, написанный кем-то другим, я не уверен, почему это так.   -  person A.Blanc    schedule 21.02.2019
comment
@ A.Blanc Вызывает ли вызов toggleMyVideo без тайм-аута ошибку?   -  person nick zoum    schedule 21.02.2019
comment
@nickzoum нет, это не ошибка, а только предупреждение об окончании кандидатов.   -  person A.Blanc    schedule 22.02.2019
comment
@nickzoum Если я переключаюсь, не ожидая не менее 5 секунд между каждым переключением, я фактически получаю ту же ошибку.   -  person A.Blanc    schedule 22.02.2019
comment
@A.Blanc Похоже, проблема в toggleMyVideo   -  person nick zoum    schedule 22.02.2019
comment
Не могли бы вы предоставить функцию toggleMyVideo? Из-за ограниченного кода я не смог воспроизвести вашу проблему.   -  person Jenifer Jiang    schedule 22.02.2019


Ответы (1)


Я нашел, что происходит. Когда я переключал видео на Edge, я перезапускал все установление однорангового соединения с существующим аудиопотоком (и новым видеопотоком в зависимости от того, было ли видео включено или выключено), поэтому, когда я попытался добавить звук к своему аудиоэлементу, уже было существующий с тем же идентификатором, который вызвал ошибку. Добавил туда чек, ошибка не показывается.

person A.Blanc    schedule 22.02.2019