gpt4 book ai didi

javascript - getUserMedia 权限对话框在 FireFox 中消失

转载 作者:行者123 更新时间:2023-11-29 19:17:24 24 4
gpt4 key购买 nike

当我访问 getUserMedia 时,会弹出一个权限对话框,我的网站会一直等待,直到用户接受或阻止请求。该部分适用于 Chrome 47。

但是,(至少)在 FireFox 43 中,当对话框可见时,用户可以单击其他任何地方,它会消失并且永远不会调用 getUserMedia 的回调。然后用户无法授予权限,我的网站一直在等待。而且点击其他地方也很容易,所以我预计会有很多“麦克风不工作”的支持电话。

(对我来说,这似乎是 FireFox 中的一个错误,因为 Chrome 一直保持对话框可见,直到用户单击它。)但是无论如何,有解决办法吗?

例如,有没有办法检测权限对话框当前是否可见?

或者有没有办法通过使用 setTimeout 在 javascript 中重新调用该对话框?

关于如何改善此用户体验,还有其他建议吗?

我唯一能想到的就是发布一条消息,大意是“等待使用麦克风的许可。如果您没有看到许可对话框,请刷新此页面。”一定有比这更好的东西。

谢谢!

最佳答案

权限对话框只是被最小化了。单击对话框挂起的灰色麦克风(或摄像头)图标,它仍然存在于 URL 栏中,对话框会重新长出并且可以回答。

这不是一个错误,因为它被设计成比 Chrome 的侵入性更小,不会让网站将用户扣为人质,可以这么说,直到他们放弃权限,但这种行为似乎确实让很多人感到困惑。参见 https://bugzil.la/1004055 .

没有万无一失的方法来检测权限对话框当前是否可见,但如果您在页面上的任何地方检测到鼠标点击,但您没有得到响应,那么很可能不是。

一种解决方法是发出另一个 getUserMedia 调用(通过 setTimeout 或其他方式)。它不应该崩溃。如果是,则 please file a bug .

另一种解决方法是使用 location.refresh() 以编程方式刷新页面。

如果您的站点未设计为在没有麦克风的情况下工作,或者您检测到表明用户卡住的用户操作,则可能是“正在等待使用麦克风的权限。请单击 URL 中的麦克风图标”如果权限对话框不可见,则调用该栏。”

关于javascript - getUserMedia 权限对话框在 FireFox 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34668813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com