web-audio-api - WebUSB 和 groupId 识别
问题描述
我试图找到一种方法来确定 WebUSB 是否是同一多功能设备(即打印机)的一部分。作为一个例子,我可以想象包含音频和 WebUSB 功能的设备。对于音频部分,我可以使用以下 API:
navigator.mediaDevices
返回deviceId和groupId。但是,在 WebUSB 的情况下,没有可以用于匹配两个设备的此类组标识符。唯一可以做的就是请求设备:
var device = navigator.usb.requestDevices({filters:[]})
并检查序列号 - 但它无助于匹配由两个 API 检索到的设备。我在这里找到了关于设备唯一标识符的旧讨论: https ://github.com/w3ctag/design-reviews/issues/64
但是,这似乎没有任何结论。是否有任何机制可以验证 WebUSB 和 WebAudio(或其他 API)是否属于同一硬件?
解决方案
这是一个非常有趣的问题,我们(在 Chromium 项目中)还没有机会充分探索。理想情况下,您将能够按设备对各种 API 返回的接口进行分组。不幸的是,浏览器中这些 API 的实现几乎完全不了解彼此,并且依赖于可能彼此不了解的不同操作系统 API。长话短说,要可靠地建立这种分组需要做很多工作。
也就是说,WebUSB 和 WebAudio API 都提供对某些设备属性的访问,因此应该可以根据设备名称等内容建立松散的关联。
推荐阅读
- javascript - 无法在移动输入上修复图像方向
- reactjs - 不要 lint 元组中的键
- python - numpy 图像浮点数组,为 int 0..255 值
- swiftui - 在 SwiftUI 中隐藏 Picker 在 watchOS 上的焦点边框
- python - discord.py 机器人脚本对 list.pop() 函数没有反应。如何解决这个问题?
- javascript - Python web 抓取请求和漂亮的汤被需要 javascript 阻止
- python - Python类型:连接序列
- http - 如何知道给定请求中http客户端使用的代理
- python - 如何根据输入参数多次运行 Python click 模块?
- javascript - 语法错误:错误:无法加载要扩展的配置“ckeditor5”。将 CKEditor 导入 Vuejs 时