我使用Videojs在弹出窗口中加载视频播放器。但是当我尝试使用width()和height()时,我收到了这个错误:
Chrome:Uncaught TypeError: this.el_.vjs_getProperty is not a function
IE11:SCRIPT438: L’objet ne gère pas la propriété ou la méthode « vjs_getProperty »
我用错了吗?
我的代码:
HTML部分
<body>
<!-- hidden div -->
<div id="dialog" style="display:none">
<video id="player" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{"techOrder": ["flash", "html5"]}'></video>
</div>
<div>
<span>Category</span>
<ul>
<li><a href="#" class="video" id="video_id">Item 1</a></li>
</ul>
</div>
</body>
JS部分
$( window ).resize(function() {
height = $(window).height() / 100 * 90;
width = $(window).width() / 100 * 90;
});
$("a.video").button().on("click", function() {
var id = $(this).prop('id');
var div_dialog = $('#dialog');
var player = videojs('player');
player.src({ type : "rtmp/mp4", src : "rtmp://server.com/vod/&mp4:foo/bar/" + id + ".mp4" });
player.width( width - 135 );
player.height( height - 150 );
// display pop-up
dialog.dialog("option", "title", $(this).text());
dialog.dialog("option", "height", height );
dialog.dialog("option", "width", width );
dialog.dialog("open");
});
编辑: Jsfiddle https://jsfiddle.net/snabow/b37z92g5/ 我认为jQuery存在问题。当我把4行......:
var player = videojs('player');
player.src({ type : "video/mp4", src : "http://vjs.zencdn.net/v/oceans.mp4" });
player.width( width - 135 );
player.height( height - 150 );
...在$(function(){...}之外,它可以工作。
答案 0 :(得分:0)
我最终找到了一种方法让它发挥作用,这是解决方案:
var player = videojs('player', {}, function(){
// Modification de la source du player
player.src({ type : "video/mp4", src : "http://vjs.zencdn.net/v/oceans.mp4" });
// Modification de la taille du player
player.width(width - 35);
player.height(height - 50);
});
我认为videojs和jQuery ont width()和height()方法之间存在冲突。