在iPhone上使用html5视频事件,如何通过简单的暂停告诉“完成”按钮?

时间:2010-06-22 22:15:21

标签: iphone video html5

我有一个使用HTML5视频标签的iPhone网页。在iPhone上,此类嵌入式视频在本机播放器中播放。当用户使用“完成”按钮解除视频时,我想检查视频何时结束。最初,我试过这个:

var video = $("#someVideo").get(0);          
video.addEventListener('ended', myFunction);

但只有在视频被允许完成时才会被解雇。在玩了一些其他事件(暂停,停滞,等待)之后,我发现“完成”按钮会触发“暂停”事件。但是,当我添加这个:

video.addEventListener('pause', myFunction);

当用户点按播放控件中的暂停按钮时,我会从“完成”按钮调用我的代码。第二种情况是不可取的;我只想要第一个案例,但事件似乎没有给我足够的信息。

有没有人知道如何告诉用户何时点击了iPhone播放器中的“完成”按钮(而不是简单地暂停)?

3 个答案:

答案 0 :(得分:20)

只需在暂停功能中检查webkitDisplayingFullscreen布尔值即可。按“完成”或“暂停”会触发暂停事件,但是“完成”会像从全屏模式退出一样进行额外操作。执行该检查将帮助您区分按下2个按钮。 下面是一些示例代码。

<script>
var html5Video = function() {
    return {
        init: function() {
            var video = document.getElementsByTagName('video')[0];
            video.addEventListener('ended', endVideo, false);
            video.addEventListener('pause', pauseVideo, false);
        }
    };
}();

function endVideo() { 
    alert("video ended");
}

function pauseVideo() { 
    var video = document.getElementsByTagName('video')[0];
    if (!video.webkitDisplayingFullscreen)
        endVideo(); 
}

html5Video.init();

</script>

答案 1 :(得分:20)

这就是你需要的:

yourplayer.addEventListener('webkitendfullscreen', onPlayerExitFullscreen, false);

反之亦然

yourplayer.addEventListener('webkitbeginfullscreen', onPlayerEnterFullscreen, false);

以下是我发现的问题的另一个答案:How to figure out when a HTML5 video player enters the full screen mode on iOS / iPads?

答案 2 :(得分:-2)

您应该使用一个名为“已结束”的事件,请参阅http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-ended