0

我正在尝试使用 WebMidi.js 库从我的 midi 控制器读取输入。

当我尝试记录输入或输出时,它会显示为一个空数组。这是我的代码:

WebMidi.enable(function (err) {
if (err) {
  console.log("WebMidi could not be enabled.", err);
} else {
  console.log("WebMidi enabled!");

  console.log(WebMidi.inputs);
  console.log(WebMidi.outputs);
}
});

我得到的日志是 2 个用于输入和输出的空数组。

这是我在 Mac 中设置的 Midi Studio 的图片。我不确定我是否应该在这里做一些额外的配置来让我的 Roland A-PRO 显示为输入/输出。我看到它是灰色的,这让我认为它必须需要一些额外的配置。

但是,当我通过 Ableton 运行控制器时,它可以工作。

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

1

香草 JS 的示例

function midiOnStateChange(event) {
    console.log('midiOnStateChange', event);
}
function midiOnMIDImessage(event) {
    console.log('midiOnMIDImessage', event);
}
function requestMIDIAccessSuccess(midi) {
    var inputs = midi.inputs.values();
    for (var input = inputs.next(); input && !input.done; input = inputs.next()) {
        console.log('midi input', input);
        input.value.onmidimessage = midiOnMIDImessage;
    }
    midi.onstatechange = midiOnStateChange;
}
navigator.requestMIDIAccess().then(requestMIDIAccessSuccess);

在浏览器中运行示例 https://surikov.github.io/webaudiofont/examples/midikey.html

于 2020-04-23T06:43:01.183 回答