1

参考:2013 年带有 Web MIDI API 的浏览器?

我目前在 OS 10.9.2 上运行 Chrome 34.0.1847.116 并尝试使用 Web Midi API。启用 chrome://flags/#enable-web-midi 后,我可以通过将以下代码从http://www.w3.org/TR/webmidi/粘贴到 DevTools 控制台来获取 midiAccess 对象。

var midi = null;  // global MIDIAccess object

function onMIDISuccess( midiAccess ) {
  console.log( "MIDI ready!" );
  midi = midiAccess;  // store in the global (in real usage, would probably keep in an object instance)
}
function onMIDIFailure(msg) {
console.log( "Failed to get MIDI access - " + msg );
}
navigator.requestMIDIAccess().then( onMIDISuccess, onMIDIFailure );

当我查询 midi.inputs() 和 midi.outputs() 时,返回的列表仅包含 IAC 总线设备。我的 MIDI 键盘(与 Turtle Beach USB MIDI 适配器连接)不显示。在尝试诊断问题时,到目前为止,我发现了以下内容:

  • 该适配器在 OS X 的音频/Midi 设置中可见,并且键盘可以与 Logic Pro 以及自制的 CoreMidi 代码一起正常工作。
  • http://webaudiodemos.appspot.com/monosynth/index.html上的网络合成器示例也无法找到键盘,并且在按下键时不会发出声音。
  • 当我点击它的虚拟键时, http ://djazz.se/lab/synth/ 上的网络合成器示例确实会发出声音。DevTools 显示它正在使用 IAC 总线设备。

我需要做些什么来帮助 Chrome 查找非 IAC MIDI 设备?

4

1 回答 1

1

开发人员 cwilso 对问题的回答(链接如下)解释了这个问题。必须重新启动浏览器以检测新连接的设备(即使 web-midi 已经启用)。这样做导致我的适配器被检测到并可用作输入设备

检测 Web MIDI API 中是否连接了 MIDI 接口

于 2014-04-22T12:40:13.283 回答