如何调试自己的视频,因为此时没有出现任何警报。我使用IE9,播放器是jwplayer。我错过了什么或者我把javascript代码放在错误的地方进行调试,因为我试图将它放在jwplayer元素的下方和上方。我想在点击播放时看到警报还是想直接出现?
<div id="myElement">Loading the player...</div>
<?php echo 'This is the videoPath '.$dbVideoFile; ?>
<script type="text/javascript">
jwplayer("myElement").setup({
file: "<?php echo $dbVideoFile; ?>",
});
var myvid = document.getElementById('myElement');
if (myvid.error) {
switch (myvid.error.code) {
case MEDIA_ERR_ABORTED:
alert("You stopped the video.");
break;
case MEDIA_ERR_NETWORK:
alert("Network error - please try again later.");
break;
case MEDIA_ERR_DECODE:
alert("Video is broken..");
break;
case MEDIA_ERR_SRC_NOT_SUPPORTED:
alert("Sorry, your browser can't play this video.");
break;
}
}
</script>
答案 0 :(得分:0)
首先,您尝试从div元素而不是视频中获取错误,第二件事是您在加载代码时尝试立即执行此操作 - jwplayer可能在页面/文档加载时运行或至少有一些超时,在那个特定时刻还没有玩家。你应该将回调函数附加到onError jwplayer事件,然后尝试找出错误。此外,MediaError
代码常量未在全局范围内定义,它们绑定到MediaError
对象,因此您应该使用例如MediaError.MEDIA_ERR_ABORTED
而不仅仅是MEDIA_ERR_ABORTED
jwplayer("myElement").setup({
file: "<?php echo $dbVideoFile; ?>",
events: {
onError: function (message) {
console.error('Video error: ' + message);
// note that jwplayer is replacing your original div element with new one with same id
// you can try to get video tag created by jwplayer:
var videos = document.getElementById('myElement').getElementsByTagName();
if (videos.length && videos[0].error) {
switch (videos[0].error.code) {
case MediaError.MEDIA_ERR_ABORTED:
alert("You stopped the video.");
break;
case MediaError.MEDIA_ERR_NETWORK:
alert("Network error - please try again later.");
break;
case MediaError.MEDIA_ERR_DECODE:
alert("Video is broken..");
break;
case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:
alert("Sorry, your browser can't play this video.");
break;
default:
alert('Unknown error');
break;
}
}
}
}
});