Звук getUserMedia() не работает на статическом веб-сайте после работы в SDK

2 новых важных факта здесь

  • Как указано на этой странице Google App Engine. файл app.yaml не используется. Как упоминалось в ответе, на самом деле требуется app.yaml.

  • [contracalls.appspot.com] работает, когда я запускаю его с моего собственного Mac Terminal из его собственного каталога следующим образом server:contracalls brian$ gcloud app browse --project contracalls Но, конечно, другие не могут запускаться с моего настольного компьютера, поэтому я все равно нужно исправить. Являются ли инструкции в Google App Engine страница неполная, возможно?

Добавлен jsfiddle.net Это показывает рабочую версию jsfiddle

Строка 3 следующего кода создает Uncaught (in promise) TypeError: Cannot read property 'getUserMedia' of undefined при развертывании здесь, но отлично работает в GAE SDK. (Вы можете сами попробовать ссылку.) Есть идеи?

Индекс.js:

const recordAudio = () =>
new Promise(async resolve => {
        const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
        const mediaRecorder = new MediaRecorder(stream);
        let audioChunks = [];
// ...
});

Уведомление:

  • Это статическое веб-приложение, в котором используются только html и javascript.

  • Использование Chrome версии 79.0.3945.88 (официальная сборка) (64-разрядная версия).


person zerowords    schedule 04.01.2020    source источник
comment
Возможно, вы захотите снова обновить свой пост - файл .yaml необходим даже для локальной работы...   -  person Dan Cornilescu    schedule 07.01.2020


Ответы (1)


Я поболтал, а затем написал по электронной почте специалисту службы поддержки Google, который, наконец, разобрался с проблемой (см. ниже). Попутно я обнаружил, что, вопреки моему обновленному вопросу, существует файл app.yaml, как было описано в первой ссылке в вопросе.

Проблема заключалась в том, что приложение должно вызываться с помощью https://, и для этого мне нужно было поместить secure: always в файл app.yaml.

person zerowords    schedule 06.01.2020