多实例测试 Demo
本页面将两个扫码器分别放在独立的 BarcodeScannerProvider 中,用于验证扫码器 A 和扫码器 B 不会覆盖或清理对方的媒体流、闪光灯状态、错误和识别结果。
手动测试清单
- 允许相机权限,比较两个实例的媒体流 ID。
- 在每个活动相机前展示条码,确认识别结果只出现在对应卡片中。
- 暂停或卸载扫码器 A,确认扫码器 B 的状态保持不变。
- 修改其中一张卡片的条码格式或闪光灯状态,观察另一张卡片的诊断信息。
- 重置其中一个 Provider 作用域,确认只有该卡片恢复为全新状态。
- 如果第二个相机无法打开,确认错误只显示在对应卡片中,同时第一个扫码器继续工作。
同一个物理相机能否同时创建两条媒体流取决于浏览器和设备。第二条媒体流启动失败,本身不代表 Provider 状态隔离失败。
每张卡片分别拥有独立的 BarcodeScannerProvider。部分浏览器或设备无法同时打开同一个物理相机;如果只有其中一张卡片报错,也能验证两个作用域相互隔离。
扫码器 A
重置会卸载当前 Provider 并创建全新的 store,另一个扫码器的状态不应发生变化。
实例诊断信息
- Provider 作用域
scanner-a- 媒体流 ID
无- 视频轨道
- 无
- 轨道状态
无- 扫码器状态
- 正在等待相机
- 支持闪光灯
- 否
- 闪光灯请求状态
- 关闭
最近识别结果
当前作用域尚未识别到条码。
扫码器 B
重置会卸载当前 Provider 并创建全新的 store,另一个扫码器的状态不应发生变化。
实例诊断信息
- Provider 作用域
scanner-b- 媒体流 ID
无- 视频轨道
- 无
- 轨道状态
无- 扫码器状态
- 正在等待相机
- 支持闪光灯
- 否
- 闪光灯请求状态
- 关闭
最近识别结果
当前作用域尚未识别到条码。