HTML5播放视频,通过jquery动态的设置video src的值无法播放视频的解决办法
2019-10-12 admin 前端 1688
通过 jQuery 确实是给 source 的 src 赋值成功,从调试来看,浏览器并没有去发起请求去获得相应的视频,
而只是单纯的将 a 标签的 data-src 中的值赋值给 source 了。
但是如果这么做,浏览器就会去请求地址获得视频文件:
$(".dj").on("click", function() { var src = $(this).data("src"), sourceDom = $("[object Object]"); $("#video-box video").append(sourceDom); $("#video-box").show(); // 自动播放 $("#video-box video")[0].play() });
上面那个方法,经测试,只能上传一次的时候是有效果的,如果要替换多次视频地址,就会显示第一次的视频,还有有一点问题,可以使用如下方式修改视频的播放地址:
var videoSrc = data.videoUrl;//新的视频播放地址 document.getElementById("videoid").src=videoSrc ; document.getElementById("videoid").play();
此外,需要HTML5仅允许一个视频播放,点另一个时原视频暂停
var video = document.getElementsByTagName("video"); // 暂停函数 function pauseAll() { var self = this; [].forEach.call(video, function (i) { // 将audios中其他的audio全部暂停 i !== self && i.pause(); }) } // 给play事件绑定暂停函数 [].forEach.call(video, function (i) { i.addEventListener("play", pauseAll.bind(i)); })