jquery设置video的宽度_通过jquery动态的设置video src的值无法播放视频?

本文探讨了使用jQuery动态设置video标签source的src属性时,浏览器未发起请求加载视频的问题。通过分析,发现需要动态插入source标签以触发浏览器重新获取视频资源。解决方案包括移除原有的source标签,然后动态插入新的source并播放视频。
摘要由CSDN通过智能技术生成

针对上面的动态更换视频地址,我综合了大家的回答,写了一篇博客,地址:h5 动态更换视频播放地址如下:

1.第一步,html上面,插入播放视频的标签video,且增加一个source,src的值需要先填空处理.

点击

//css相关文件

*{padding:0;margin:0;} #video-box{display:none;}

//js代码:点击上传视频文件,下面这个替换视频播放地址的方法是无效的

$(".dj").on("click", function() {

var src = $(this).data("src");

$("#video-box source").prop("src",src)

$("#video-box").show();

});

2.第二步,解决方案如下:

通过 jQuery 确实是给 source 的 src 赋值成功,从调试来看,浏览器并没有去发起请求去获得相应的视频,

而只是单纯的将 a 标签的 data-src 中的值赋值给 source 了。

但是如果这么做,浏览器就会去请求地址获得视频文件:

$(".dj").on("click", function() {

var src = $(this).data("src"),

sourceDom = $("");

$("#video-box video").append(sourceDom);

$("#video-box").show();

// 自动播放

$("#video-box video")[0].play()

});

因此,可以推断出来的是,当 video 中存在 source 标签的时候,浏览器渲染之后会自动去获取地址,即便地址改变,浏览器也不会再去获取地址。但是通过动态的插入 source 标签的方式,可以触发浏览器进行重排,从而去获取相应地址的文件进行播放。

总结:

上面那个方法,经测试,只能上传一次的时候是有效果的,如果要替换多次视频地址,就会显示第一次的视频,还有有一点问题,可以使用如下方式修改视频的播放地址,参考链接:https://bbs.csdn.net/topics/3...

var videoSrc = data.videoUrl;//新的视频播放地址

document.getElementById("videoid").src=videoSrc ;

document.getElementById("videoid").play();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值