javascript - 在 Android Chrome 52 上使用 Web MIDI API

标签 javascript android google-chrome web-midi

我在我的 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.requestMIDIAc​​cess() 成功(它按预期调用了 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/

相关文章:

android - 我希望我的应用程序每月的某一天自动启动

java - 如何在所有 Activity 中显示抽屉导航?

javascript - 谷歌浏览器中没有 www 子域的页面显示不同

javascript - select2 multiple 防止其他输入在输入时提交表单

javascript - 变量没有传递到函数中?

javascript - 创建全屏弹出窗口并更新滚动条

Java SipServlet 构建 VOIP 电话调用(在计算机和模拟电话/手机之间)

javascript - YouTube iFrame API : Setting origin breaks video events + VEVO doesn't work - December 2015

javascript - 未捕获的类型错误 : Cannot call method 'push' of undefined

google-chrome - 在 Chrome 开发者工具中调试时跳过行