iPhone端视频偶发无法从source标签获取src属性问题求助
iPhone设备上Hero视频偶尔无法加载source标签src的问题
我正在搭建带有Hero视频区域的网站,该视频在安卓和PC设备上100%正常运行,但在iPhone设备上偶尔无法从其子source标签中读取src值。
相关代码
<video class="homepage-video" playsinline preload="auto" autoplay muted loop="loop" > <script> const video = document.querySelector(".homepage-video") video.addEventListener("loadstart", () => console.log("Video load started."), ) video.addEventListener("error", () => console.error("Video load error:", video.error), ) video.addEventListener("play", () => console.log("Video is playing.")) video.addEventListener("canplay", () => console.log("Video can play.")) video.addEventListener("stalled", () => console.warn("Video loading stalled."), ) video.addEventListener("loadedmetadata", () => console.log("Video metadata loaded."), ) video.addEventListener("loadeddata", () => console.log("First frame loaded"), ) video.addEventListener("durationchange", () => console.log("Duration updated"), ) video.addEventListener("progress", () => console.log("Video loading is progressing"), ) </script> <source src="https://myaddress.co.uk/Desktop-Hero.webm" media="(min-width: 576px)" type="video/webm" /> <source src="https://myaddress.co.uk/Desktop-Hero.mp4" media="(min-width: 576px)" type="video/mp4" /> <source src="https://myaddress.co.uk/Mobile-Hero.webm" media="(max-width: 575px)" type="video/webm" /> <source src="https://myaddress.co.uk/Mobile-Hero.mp4" media="(max-width: 575px)" type="video/mp4" /> Your browser does not support the video tag. </video>
调试发现的现象
- 部分iPhone设备上视频加载成功率约95%,部分设备仅约5%;
- 视频无法显示时,仅触发
loadstart事件,此时currentSrc为空字符串,networkState为3(即NETWORK_NO_SOURCE); - 问题并非仅出现在Safari,iPhone上的Chrome浏览器也会出现。
已尝试但无效的方案
- 已设置
playsinline、loop和muted属性,无影响; - 将src直接设置在video标签中可正常运行,排除资源路径问题;
- 设置
preload="auto"无改善; - 排除服务器不支持字节范围请求、会话登录保护等问题;
- 调整source标签顺序无作用;
- 不认可转成.mov并设置mp4 mime类型的方案,需明确问题根源。
请问有人遇到过类似问题吗?
内容的提问来源于stack exchange,提问作者user29196690
相关产品推荐
相关产品推荐

