5

我正在使用视频标签并使用 bind 或 live 绑定它。在这两种情况下它都不起作用。下面是我的代码可能是我做错了什么并且无法捕捉到它。

            <video width="videoWidth"
            height="videoHeight"
            poster="../Poster/poster.png"
            id="videoId"
            controls="controls"
            muted="true"    
            seeking="true"
            paused="true"   >

            <source src="../video/trailer.mp4" type="video/mp4"/>               
            <source src="../video/trailer.ogv" type="video/ogv"/>
            <source src="../video/trailer.webm" type="video/webm"/>
                Your browser does not support the video tag.
            </video>

这是用于绑定事件的 JS 文件包含。

$("#videoId").bind('ended',function() {
            alert("Entered");
        });

更新

我正在更新以前的 JS,现在它适用于所有视频事件。现在我遇到了错误事件,其中事件将根据事件代码触发。可能是我在编写代码时出错但错误事件不起作用。下面是我的 JS

$(document).ready(function(){
        $("#videoId").bind('play',function() {
            alert("Play");
        });

        $("#videoId").bind('canplay',function() {
            alert("Can Play");
        });

        $("#videoId").bind('empited',function() {
            alert("Empited");
        });

        $("#videoId").bind('ended',function() {
            alert("Ended");
        });

        $("#videoId").bind('loadstart',function() {
            alert("Load Start");
        });

        $("#videoId").bind('pause',function() {
            alert("Pause");
        });

        $("#videoId").bind('playing',function() {
            alert("Playing");
        });

        $("#videoId").bind('progress',function() {
            alert("Progress");
        });

        $("#videoId").bind('suspend',function() {
            alert("Suspend");
        });

        $("#videoId").bind('volumechange',function() {
            alert("Volume");
        });

        $("#videoId").bind('waiting',function() {
            alert("waiting");
        });
        $("#videoId").bind('error',function(e,ui) {
            switch (e.target.error.code) {
             case e.target.error.MEDIA_ERR_ABORTED:
               alert('You aborted the video playback.');
               break;
             case e.target.error.MEDIA_ERR_NETWORK:
               alert('A network error caused the video download to fail part-way.');
               break;
             case e.target.error.MEDIA_ERR_DECODE:
               alert('The video playback was aborted due to a corruption problem or because the video used features your browser did not support.');
               break;
             case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
               alert('The video could not be loaded, either because the server or network failed or because the format is not supported.');
               break;
             default:
               alert('An unknown error occurred.');
               break;
           }
            //alert("Error Code : "+event.target.error.code);
        });

        });

在控制台中得到“获取”。

4

2 回答 2

3

这将警告视频元素上的错误对象中的所有对象

$("video").on("error", function(err) {
    for (var i in err.currentTarget.error) {
        alert(i + ": " + err.currentTarget.error[i]);
    }
});
于 2014-04-25T17:53:15.757 回答
1

尝试使用:

$("#videoId").bind('error',function(e,ui) {...function here...}, true);

这至少应该抛出你的错误处理程序,但错误可能是更高的传播。下一步将查明实际错误。这个链接应该有帮助:

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener

于 2013-07-24T23:03:58.723 回答