Обработка микрофонных аудио-образцов Web Audio API - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь получить образцы аудио с моего микрофона через Web Audio, используя этот код:

<!doctype html>
<html>
<meta charset="utf-8">
<body>
<script>
    function start() {
        let button = document.getElementById("start");
        button.disabled = true;

        let audioCtx = new (window.AudioContext || window.webkitAudioContext)();
        navigator.mediaDevices.getUserMedia({
            audio: {
                echoCancellation: false,
                noiseSuppression: false,
                autoGainControl: false,
            }
        }).then(function (stream) {
            let audioSource = audioCtx.createMediaStreamSource(stream);
            let scriptNode = audioCtx.createScriptProcessor(4096, 1, 0);
            scriptNode.onaudioprocess = function (audioProcessingEvent) {
                console.log('foo!');
            };
            audioSource.connect(scriptNode);

        }).catch(function (err) {
            console.log('Error initializing user media stream: ' + err);
        });
    }    
</script>

<button id="start" onclick="start()">Start</button>

</body>
</html>

По какой-то причине это не выдает постоянно "foo!" в консоли. Чего мне не хватает?

EDIT: работает в Firefox, но не в Chrome. Смешение ...

1 Ответ

0 голосов
/ 04 июля 2018

Добавление scriptNode.connect(audioCtx.destination) помогло Chrome. Обработка начинается только в том случае, если узел сценария действительно подключен к какому-либо выводу.

...