我们有一个有背景视频的网站。当用户在IOS设备(iPhone、Mac等)上处于低功耗模式时,就会出现问题。
是否可以只处理低功耗模式,并设置回退图像,而不是视频播放按钮?
我看到了一个带有suspend
事件的变体,但是当视频完全加载时它也会启动,所以对我们来说这不是一个正确的解决方案。
发布于 2022-03-15 11:02:56
您可以使用javaScript电池API跟踪电池状态。
发布于 2022-03-15 15:19:35
似乎我找到了一个解决方案:在我看来,最正确的方法就是处理错误抛出(在catch块中),并设置一个回退图像而不是视频。
FYI:这个解决方案只有在视频处于后台时才有意义(从UX的角度来看)
因此,解决办法是:
`
useEffect(() => {
if (videoRef.current) {
videoRef.current?
.play()
.then(() => {})
.catch((error) => {
setVideoPaused(true);
return error;
});
}
}, []);
`
发布于 2022-09-28 11:44:54
在低功耗模式https://video-dev.github.io/can-autoplay/中检查此链接
您将看到您得到的错误是"NotAllowedError"
,因为在当前上下文中不允许请求。这实际上适用于autoPlay被userAgent或系统设置所阻止的任何情况。
因此,将它抛到catch中,并为上面提到的回退设置状态。
.catch((error) => {
if (error.name === "NotAllowedError") {
//low power mode
}
似乎很可靠
https://stackoverflow.com/questions/71480212
复制相似问题