我在我的 Mac 笔记本电脑上成功地使用了 Web MIDI API 和 Chrome 52 - 例如识别连接的 MIDI 乐器。但是,当我在运行 Android 5.0.1 的三星 Galaxy S5 中使用 Chrome 52 时,Web MIDI API 似乎无法工作或无法识别连接的乐器。例如,我试过像 this one 这样的在线 Web MIDI API 测试。 , 未成功(所有这些在笔记本电脑上都可以正常工作)。
native 应用程序确实可以识别我的 MIDI 设备,这些设备只能在我的 Galaxy 手机中找到 - 它们通过有效的 USB OTG 数据线连接。但是 Chrome(或 Opera)不是。任何帮助将不胜感激。我试过 Chrome Dev 和 Chrome Beta,结果相同。请问是手机的问题,还是Android版本的问题?
更新:我也尝试过使用不同品牌的 Android 平板电脑和 Android 6.0 (Marshmallow)。结果是一样的:navigator.requestMIDIAccess()
成功(它按预期调用了 midiAccess
对象的 success
回调),但是 midiAccess
没有输入或输出,即使已连接设备。使用 native 应用程序时,同一台平板电脑会识别该设备。
更新 2:成功!问题是我用来测试的电子钢琴。出于某种原因,我的笔记本电脑 Chrome 确实找到了我的雅马哈钢琴,但 Android Chrome 却没有(它们是相同版本的 chrome)。我换了另一个键盘(较新的 Roland 钢琴),现在 Android Chrome 和 MacOS Chrome 都能检测到它。
最佳答案
您必须测试您的设备以了解正在读取 USB 主机。您可以使用这样的应用程序进行测试:app test USB Host
如果您的设备没有准备好 USB 主机,您可以使用根模式激活它。
关于javascript - 在 Android Chrome 52 上使用 Web MIDI API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522026/