невозможно записать звук, даже когда я взаимодействую со страницей

Я использую API getUserMedia и mediaRecorder для записи звука.

даже когда я взаимодействую со страницей и нажимаю, чтобы разрешить запись, я получаю эту ошибку:

DOMException: не удалось запустить источник звука

Я использую этот код:

document.head.innerHTML += '<audio id="recordedAudio" crossorigin="anonymous"></audio>';
navigator.mediaDevices.getUserMedia({audio:true})
.then(stream => {
  rec = new MediaRecorder(stream);
  rec.ondataavailable = e => {
    audioChunks.push(e.data);
    if (rec.state == "inactive"){
    let blob = new Blob(audioChunks,{type:'audio/x-mpeg-3'});
    recordedAudio.src = URL.createObjectURL(blob);

    }
  }
})
.catch(e=>console.log(e));

Я помню, сегодня утром я запускал код без ошибок! Что случилось с хромом за несколько часов!?

Как это исправить и какие могут быть проблемы?


person Sara Ree    schedule 10.07.2020    source источник


Ответы (2)


Попробуйте очистить кеш и перезапустить браузер, в винде так:

Ctrl + Shift + R
person Dennis Kozevnikoff    schedule 10.07.2020
comment
Я очистил весь кеш и файлы cookie на одну неделю ... в firefox я вижу всплывающее окно разрешения, в chrome я не могу! - person Sara Ree; 10.07.2020
comment
Чтобы включить всплывающие окна в Chrome: Настройки -> Конфиденциальность и безопасность -> Настройки сайта -> Всплывающие окна и перенаправления -> Разрешено - person Dennis Kozevnikoff; 10.07.2020

Это может быть не связано с разрешением пользователя. Обычно ошибки разрешений вызывают исключение DOMException: Permission denied.

Возможно ли, что источник звука используется другой вкладкой?

Также попробуйте проверить текущие настройки своей страницы, щелкнув крошечный значок замка в адресной строке.

разрешение микрофона хром

person lostsource    schedule 10.07.2020
comment
Я еще больше запутался! Я поместил код в вопрос внутри функции, но у меня есть доступ к rec и audiochunck из глобальной области видимости!!! Как я это сделал?! - person Sara Ree; 10.07.2020
comment
ну это отдельные вопросы. Вы объявили audioChunks внутри функции? посмотрите здесь для получения дополнительной информации о Scope developer.mozilla.org/en-US /docs/Глоссарий/Область применения - person lostsource; 10.07.2020
comment
Я знаю область видимости в javascript. Я не определил ни одной переменной. Я просто использовал приведенный выше код внутри функции, а затем где-то еще я использовал rec.start() ?! - person Sara Ree; 10.07.2020