我有一个网页,其中有一些小视频(大小小于1 MB)低于我懒惰的折叠。它在Firefox和Chrome中正常运行。但是在Safari中失败。
在Safari的控制台中,我没有看到任何错误消息。在服务器(node.js)端,我看到视频文件已成功传输。
------- HTML代码。 ------
<video controls preload="none" width="230" poster="../assets/placeholder.jpg" class="videoCenteredInSection lazy">
<source data-src="../assets/All-In-One.mp4" type="video/mp4">
</video>
Safari也存在使用'IntersectionObserver'进行LazyLoading的问题,因此作为后备,我只是将video.src分配为'data-src'的值,我可以看到它正常工作,因为已收到对正确视频文件的请求按节点服务器,文件将提供给Safari。
------ node.js代码---
res.writeHead(200, {'Content-Type': 'video/mp4' });
let fileContents = fs.readFileSync(fileToSend);
res.end(fileContents, 'utf-8');
无论是否使用'utf-8',我都尝试过,没有区别。在其他浏览器上有效,但不能在Safari中使用。
我看到一些帖子建议我需要支持范围标题,但是我看不到有什么帮助,因为文件很小,而且当我在视频上播放时,我也看不到任何请求到我的服务器。在浏览器的控制台中也看不到任何日志/错误。
请提出解决方法的建议。