iOS Safari: только звук записи звука - PullRequest
0 голосов
/ 15 ноября 2018

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

//Triggered when the user clicks on a button that start the recording
function startRecording() {
    //Create new audio context
    let audioContext = new (window.AudioContext || window.webkitAudioContext);
    //Hack polyfill media recorder to re-use the audioContex
    window.NewMediaRecorder.changeAudioContext(audioContext);

    navigator.mediaDevices.enumerateDevices().then(function (devices) {
        console.log('loaded audio devices');

        console.log(devices);

        devices = devices.filter((d) => d.kind === 'audioinput');
        console.log(devices);

        console.log('chosen device: ' + devices[0].deviceId);

        navigator.mediaDevices.getUserMedia({
            audio: {
                deviceId : {
                    exact : devices[0].deviceId
                }
            }
        }).then(function (stream) {
            console.log(stream);

            let recorder = new NewMediaRecorder(stream);
            recorder.addEventListener('dataavailable', function (e) {
                document.getElementById('ctrlAudio').src = URL.createObjectURL(e.data);
            });
            recorder.start();
            console.log('stop listening after 15 seconds');
            setTimeout(function () {
                console.log('15 seconds passed');
                console.log("Force stop listening");
                recorder.stop();
                recorder.stream.getTracks()[0].stop();
            }, 15000);
        });
    });
}

Для записи, я использую полифилл аудиозаписи (https://ai.github.io/audio-recorder-polyfill/) для достижения записи, так как MediaRecorder еще не доступен в Safari.

Рекордер работает нормально на всех навигаторах (включая OS X Safari), но в iOS Safari он записывает только шум.громкость моих громкоговорителей на максимальном уровне. Я слышу, как я говорю, но это «очень далеко».

Все обнаруженные мной онлайн-диктофоны / рекордеры имеют одинаковую проблему, они всегда записывают шум. (Проверенос iPhone 5S, 5SE и X, все в актуальном состоянии).

Я немного отчаялся, потому что я уже провел много исследований, но я не нашел никакого решения для этой проблемы.

При необходимости AudioContext создается на пользовательском событии (в данном случае прикосновение к кнопке).

Я даже пытался изменить усиление, но это не помогло. Попытка получить доступаудио без урегулированияИспользование мультимедийного устройства не помогает.

navigator.mediaDevices.getUserMedia({audio: true})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...