我正在使用自托管的videojs 7.1。
我有一个列出很多缩略图的页面,如果单击任何缩略图,它将从ajax加载视频源,并在引导模式对话框中播放视频。
页面HTML
<link href="/css/videojs.min.css" rel="stylesheet">
<script src="/js/videojs.7.1.0.min.js"></script>
<div class="row">
<?php foreach($ids as $id){ ?>
<div class="col-xs-4">
<img src="/path/to/thumbnail-<?php echo $id; ?>.jpg">
<div>some description here</div>
<a class="btn btn-primary btn-play" data-vdoid="<?php echo $id; ?>">Play video</a>
</div>
<?php } ?>
</div>
<div class="modal fade modal-wide" id="dialog-play" tabindex="-1" role="dialog" aria-labelledby="dialogLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body nomargin">
<div id="dialog-play-content">Loading...</div>
</div>
</div>
</div>
</div>
页面JS
$(document).ready(function() {
$.ajaxSetup ({cache: false});
$('.btn-play').click(function(){
var vdoid = $(this).data('vdoid');
$.get( "/vdo/player?vdoid="+vdoid, function(data){
$("#dialog-play-content").html(data);
$("#dialog-play").modal('show');
});
return false;
});
});
vdo播放器HTML
<div id="video-content-<?php echo $vdoid; ?>" class=" ">
<video id="video-player-<?php echo $vdoid; ?>" class="video-js vjs-default-skin vjs-16-9 embed-responsive-item" controls preload="auto">
<source src="/path/to/vdo/<?php echo $vdoid; ?>.mp4" type="video/mp4"></source>
</video>
</div>
vdo播放器JS
function loadvjs(){
var player = videojs('video-player-<?php echo $vdoid; ?>',{
playbackRates: [1,2,3],
textTrackSettings: false,
});
player.ready(function() {
player.play();
});
}
setTimeout(loadvjs, 1000); //bypass document ready that doesnt fire
错误返回是vdo播放器JS第二行上的“未捕获的ReferenceError:未定义videojs”。 HTML5视频仍然可以加载并可以在本机播放器中播放。
如果将视频标签放置在页面上(而不是来自Ajax),则上述代码可以初始化videojs播放器。
我正在四处搜寻,但找不到我的案子的答案。请帮忙,谢谢!