文档
多实例 Demo

多实例测试 Demo

本页面将两个扫码器分别放在独立的 BarcodeScannerProvider 中,用于验证扫码器 A 和扫码器 B 不会覆盖或清理对方的媒体流、闪光灯状态、错误和识别结果。

手动测试清单

  1. 允许相机权限,比较两个实例的媒体流 ID。
  2. 在每个活动相机前展示条码,确认识别结果只出现在对应卡片中。
  3. 暂停或卸载扫码器 A,确认扫码器 B 的状态保持不变。
  4. 修改其中一张卡片的条码格式或闪光灯状态,观察另一张卡片的诊断信息。
  5. 重置其中一个 Provider 作用域,确认只有该卡片恢复为全新状态。
  6. 如果第二个相机无法打开,确认错误只显示在对应卡片中,同时第一个扫码器继续工作。

同一个物理相机能否同时创建两条媒体流取决于浏览器和设备。第二条媒体流启动失败,本身不代表 Provider 状态隔离失败。

每张卡片分别拥有独立的 BarcodeScannerProvider。部分浏览器或设备无法同时打开同一个物理相机;如果只有其中一张卡片报错,也能验证两个作用域相互隔离。

扫码器 A

重置会卸载当前 Provider 并创建全新的 store,另一个扫码器的状态不应发生变化。

正在等待相机

实例诊断信息

Provider 作用域
scanner-a
媒体流 ID
视频轨道
轨道状态
扫码器状态
正在等待相机
支持闪光灯
闪光灯请求状态
关闭

最近识别结果

当前作用域尚未识别到条码。

扫码器 B

重置会卸载当前 Provider 并创建全新的 store,另一个扫码器的状态不应发生变化。

正在等待相机

实例诊断信息

Provider 作用域
scanner-b
媒体流 ID
视频轨道
轨道状态
扫码器状态
正在等待相机
支持闪光灯
闪光灯请求状态
关闭

最近识别结果

当前作用域尚未识别到条码。