Разрешение доступа к микрофону в пакетном приложении для устройств Chrome OS

#javascript #google-chrome-app #getusermedia #google-chrome-os

#javascript #google-chrome-app #getusermedia #google-chrome-os

Вопрос:

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

Сообщения об ошибках отображаются в двух разных местах и являются следующими:

В разделе ошибок интерфейса расширений Google:

 <webview>: The permission request for "media" has been denied.
  

В журнале консоли, после проверки окна Chrome, созданного приложением:

 Failed to connect js microphone. MicrophonePermissionError: Microphone permission denied (navigator.mediaDevices [NotAllowedError]).
  

Я попытался предоставить соответствующие разрешения в манифесте («audioCapture») и включить скрипт, который прослушивает мультимедийные запросы, сделанные элементом webview.

Это фрагмент кода, который я использовал для прослушивания мультимедийных запросов и предоставления их при запросе.

background.js

 webview.addEventListener('permissionrequest', function(e) {
  if (e.permission === 'media') {
    request.allow();
  }
});
  

Вот раздел разрешений моего файла манифеста:

manifest.json

 {
  "permissions": [
    "webview",
    "storage",
    "audioCapture",
    "videoCapture"
  ],
  

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

Комментарии:

1. Не могли бы вы поделиться точной / полной ошибкой, с которой вы столкнулись, чтобы сообщество получило представление о вашей проблеме?

2. Извините; я исправил эту ошибку. Теперь вы можете увидеть ошибки в верхней части сообщения.

3. Держу пари, что вам нужно разрешение. (В наши дни все зависит от разрешений… просто спросите Джо Байдена.) Если да, то вот концептуальный путь, которому нужно следовать: html5rocks.com/en/tutorials/getusermedia/intro

4. Не могли бы вы добавить console.log() в webview.addEventListener('permissionrequest', function(e) { , чтобы узнать, получаете ли вы событие или нет?