【问题标题】:How to discover midi keyboard in web midi api?如何在 web midi api 中发现 midi 键盘?
【发布时间】:2014-04-21 16:02:01
【问题描述】:

参考:Browsers in 2013 with 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 设备?

【问题讨论】:

    标签: macos google-chrome web-midi


    【解决方案1】:

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

    Detect if a MIDI interface is connected in Web MIDI API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-14
      • 2016-09-30
      • 2011-09-24
      • 2011-10-19
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多