手机网页抓取视频(无法切换视频源问题H5页面不能使用jquery的attr方法)
优采云 发布时间: 2022-01-15 08:08手机网页抓取视频(无法切换视频源问题H5页面不能使用jquery的attr方法)
一、无法播放视频问题
部分手机浏览器,如UC浏览器,无法播放H5页面的视频,视频要么一直循环加载,要么报-9324、19000错误。
网上大部分资料都说video标签的参数配置错误,浏览器版本不兼容,视频需要H264格式编码,但这些都不是我们的问题。
最后发现问题出在网络协议上。在部分手机浏览器上,H5页面只能使用http或websocket协议传输视频数据,不能使用https协议。
解决方案是在视频标签中使用完整的http视频链接,即带有http前缀的绝对路径。
然后我们为服务器的nginx上的/static/video目录配置一个http协议的静态资源映射。
二、无法切换视频源问题
H5页面不能使用jquery的attr方法切换视频源,否则点击切换后的视频无法播放,必须使用原生js实现切换功能。
错误的方法:
if (isH5) {
$("#videoid").attr({"src": "http://" + window.location.host + newVideoSrc}); // H5页面加上http前缀,使用绝对路径
} else {
$("#videoid").attr({"src": newVideoSrc});
}
正确方法:
let video = document.getElementById("videoid");
if (isH5) {
video.src = "http://" + window.location.host + newVideoSrc; // H5页面加上http前缀,使用绝对路径
video.play(); // H5页面必须加这个自动开始播放,不然切换后无法播放,非H5页面加不加都行
} else {
video.src = newVideoSrc;
}
请注意 video.play(); 应该添加到H5页面,否则切换后仍然无法播放。