使用jquery更改源代码后重新加载video.js播放器
Reloading video.js player after changing source using jquery
我设法制作一个脚本,在那里我可以改变视频源而无需重新加载整个页面,但问题是,在加载新源后,播放器不是,我只得到一个黑盒子。
HTML:<link href="//vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="//vjs.zencdn.net/4.12/video.js"></script>
<video id="example_video_1" class="video-js vjs-default-skin vjs-big-play-centered" controls autoplay preload="auto" width="850" height="400" data-setup='{"example_option":true}'>
<source id="videoMP4" src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4' />
</video>
<div class="menu1">menu1</div>
<div class="menu2">menu2</div>
<div class="menu3">menu3</div>
<div class="menu4">menu4</div>
JavaScript: $(".menu1").click(function() {
document.getElementById("example_video_1").innerHTML = "<source src='"http:'/'/video-js.zencoder.com'/oceans-clip.mp4'" type='video'/mp4' '/>";
});
$(".menu2").click(function() {
document.getElementById("example_video_1").innerHTML = "<source src='"http:'/'/techslides.com'/demos'/sample-videos'/small.mp4'" type='video'/mp4' '/>";
});
$(".menu3").click(function() {
document.getElementById("example_video_1").innerHTML = "<source src='"http:'/'/video-js.zencoder.com'/oceans-clip.mp4'" type='video'/mp4' '/>";
});
$(".menu4").click(function() {
document.getElementById("example_video_1").innerHTML = "<source src='"http:'/'/techslides.com'/demos'/sample-videos'/small.mp4'" type='video'/mp4' '/>";
});
完整代码和示例:http://codepen.io/BeBeINC/pen/PqydVM
使用.load()
函数。你应该暂停它,以防止音频继续播放。
var video = document.getElementById('example_video');
var source = document.getElementById('videoMP4');
$("ELEMENT").click(function() {
video.pause()
source.setAttribute('src', 'NEW MP4');
video.load();
video.play();
});
你可以这样做
var player = videojs(document.querySelector('.video-js'));
player.src({
src: 'videoURL,
type: 'video/mp4'/*video type*/
});
player.play();
你应该使用播放器的API来改变视频的源,特别是src()方法:
yourPlayer.src("http://foo.com/bar.mp4");
在你用JS填充了其他属性之后再这样做:
$('#player')[0].load();
我遇到了类似的问题,但通过动态地改变海报源,然后访问vjs海报类并改变它的风格来解决它,看看代码:
$('#videoPlayer video').attr('poster', "https://dummyimage.com/hd1080");
document.querySelector("vjs-poster" [0] .style。backgroundImage = "https://dummyimage.com/hd1080";
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- 在Video标签之前加载image标签
- Onscroll加载视频首先与poster video.js
- HTML5 & lt; video>加载良好,但不'播放视频在铬
- 使用jquery更改源代码后重新加载video.js播放器
- 由于重复请求,Video元素无法加载