在 iOS Safari 中,getUserMedia 的权限在一分钟内超时

Pau*_*lie 5 javascript safari ios getusermedia

我们的网站会执行一系列定时操作,最终让用户用麦克风录制一些内容。因为我们不想通过浏览器的“our-domain.com 想要访问麦克风 [取消] [允许]”消息来中断该过程,所以我们从一个调用开始,getUserMedia以便在用户第一次单击“时弹出”开始”。

这一切在大多数浏览器和设备上都能正常工作。但是,在 iOS 上的 Safari 上,似乎存在超时。如果网站开始录制之前的一系列操作很短(例如 30 秒),则一切正常。但是,如果这一系列操作较长(例如 90 秒),则会再次弹出权限对话框。

我有两个问题:

1)这种行为是否有记录在案?我似乎找不到任何相关信息。是否有设置超时或设备可以自由设置自己的超时?

2)您对如何处理此案有什么建议吗?我发生的两件事是

a) 每 20 秒 pinggetUserMedia一次,以防止超时或

b) 在流程开始时就开始录音,但只有在准备好后才开始保存录音。

第一个解决方案的问题是,某些浏览器有一个“记住此决定”复选框,如果未选中该复选框,则每次我 ping 时都会弹出窗口。

第二种解决方案的问题是,当录音开始时,红色麦克风会出现在浏览器中,因此用户认为我们已经开始录音。

小智 0

我在 iOS 12 上也遇到了同样的问题。显然 iOS 13 上的 Safari 可以记住并允许用户控制每个网站的权限设置。

看看这个评论: /sf/answers/4015764301/

Apple 官方网站: https://www.apple.com/au/ios/ios-13/features/ Safari -> 每个站点设置

如果更新操作系统不适合您的情况,那么仅在 Safari 上执行选项 a) 怎么样?