今天把设备管理的代码发到测试环境了,果不其然出现了不少问题。其中影响最大的就是那个轮询设备权限的逻辑,我手上的 Mac 倒是没有任何问题,在同事的一台 Windows 笔记本上则会有明显问题,出现反复开关的提示弹层(因为 getUserMedia
这个 API 确实会调用设备),经过测试协助检查后,发现 iPhone 也会出现类似的问题,轮询逻辑导致设备被反复开关,无法正常使用。
目前想到一套方案,就是轮询过程采用 enumerateDevices
的接口检测设备 deviceId
是否为空,以及列表是否为空的方式变相触发设备权限检测,触发一次之后将会得到错误原因,后续则不再进行调用,直到用户存在下一次的设备调整。
关于小窝,日记新版音乐对象支持的任务已经基本完成,接下来需要看下如何更新老数据,完成全量替换,并删除对应的向下兼容代码。接着再去支持记录日记编写时长的功能,这样就可以更好的“自留案底”了。