Запись звука на Chrome для Android устройств Ошибка? - PullRequest
2 голосов
/ 07 июня 2019

Я использую API Media Stream Recording для записи MIC пользователя.Код прекрасно работает на хромированных окнах, но когда дело доходит до андроида, он просто прекращает запись сразу же после записи звукового сигнала.

Как я могу заставить API работать на устройствах Android?
Я что-то упустил или это ошибка в API Web 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);

Затем я просто использую эти строки, чтобы начать запись:

audioChunks = [];
rec.start();

И эту, чтобы остановить и воспроизвести:

rec.stop();
recordedAudio.autoplay = true;

1 Ответ

1 голос
/ 07 июня 2019

Автовоспроизведение Chrome требует взаимодействия с пользователем для воспроизведения звука.

Проверьте это и это для обходных путей на основе JavaScript.

Или, если вы создаете приложение для Android и используете веб-браузер для загрузки своей страницы, попробуйте установить setMediaPlaybackRequiresUserGesture в false.

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("https://www.example.com");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setMediaPlaybackRequiresUserGesture(false);
...