如何在 Flutter Web 中实现音频监听流?

Kai*_*sky 6 audio web dart flutter

我正在制作一个 Flutter Web 应用程序,它必须访问麦克风并将音频数据作为整数数组进行流式传输以供进一步处理。

我已经用纯 JavaScript 成功地做到了这一点。

我尝试过的事情:

  • 图书馆flutter_sound,但我无法让它工作。我也找不到该库的任何工作示例。

  • dart:web_audio似乎是一件事,但显然你甚至无法在普通的 Flutter 应用程序中导入它。

  • dart:js这就是我现在正在尝试做的事情。我能够使用var audioContext = JsObject(context['AudioContext']);. 但是,之后我不知道可以使用什么语法将 JavaScript 代码转移到 Dart 中。这是我在 JavaScript 中所做的事情:

function initAudio() {
    try {
        audioCtx = new AudioContext();
        const GotAudioStream = function(stream) {
            const audioSource = audioCtx.createMediaStreamSource(stream);
            const audioProcessor = audioCtx.createScriptProcessor(bufSize, 1, 1);
            audioSource.connect(audioProcessor);
            audioProcessor.connect(audioCtx.destination);
            audioStarted = true;
            audioProcessor.onaudioprocess = function(e) {
                checkAudioBuffer(e.inputBuffer);
            };
        };
        navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(GotAudioStream);
    }
    catch (err) {
        console.log(err);
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有 dart:js 库的经验或关于如何在 Flutter Web 中实现简单(实时!)音频流的其他想法?

问候,

凯斯基