在MediaElement.js中停止而不是在视频结尾处倒带

时间:2011-02-10 21:23:48

标签: javascript html5 html5-video mediaelement.js

我想知道如何在视频结尾处停止MediaElement.js播放器。我想知道如何在视频结束时停止mediaelement.js播放器。我希望保持最后一帧而不是倒回以显示现在的第一帧。

是否可以改变这种行为?

5 个答案:

答案 0 :(得分:8)

我为这个问题写了一个修复程序,John在2.10.2版本中合并。 现在有一个选项“autoRewind”,您可以将其设置为false以防止播放器返回到开头。 事件修复程序未添加,不再需要删除它。

$('video').mediaelementplayer({
    autoRewind: false
});

答案 1 :(得分:3)

我相信<video>元素的默认行为是回到开头,所以你只需要通过监听结束事件来覆盖它。

var player = $('#myvideo').mediaelementplayer();

player.media.addEventListener('ended', function(e) {
    player.media.setCurrentTime(player.media.duration);
}, false);

希望有所帮助!

答案 2 :(得分:3)

可能最好的解决方案是不要害怕并删除&#34;倒带到开始视频端&#34;来自mediaelement source的处理程序。

如果你进入媒体元素的源代码并搜索&#34;结束&#34;,你最终会看到,到达视频结尾后的倒带实际上是由mediaelement故意完成的。

如果您想要删除该功能,请随意删除该处理程序&#34;结束&#34;来自mediaelement来源的事件。这解决了所有问题,包括在最后一帧和第一帧之间的闪烁,在这个问题的其他一些答案中提到。

答案 3 :(得分:1)

John Dyer's answer中的代码由于某种原因对我不起作用。然而,我能够使这个版本工作......

var videoPlayer = new MediaElementPlayer('#homepage-player', {
    loop: false,
    features:[],
    enablePluginDebug: false,
    plugins: ['flash','silverlight'],
    pluginPath: '/js/mediaelement/',
    flashName: 'flashmediaelement.swf',
    silverlightName: 'silverlightmediaelement.xap',

    success: function (mediaElement, domObject) { 
        // add event listener
        mediaElement.addEventListener('ended', function(e) {
            mediaElement.pause();
            mediaElement.setCurrentTime(mediaElement.duration);
        }, false);
    },
    error: function () { 
    }

});

videoPlayer.play();

我遇到的唯一问题是 - 非常令人沮丧,因为它在Chrome中的LAST和FIRST帧之间闪烁。否则,它在Firefox和IE中按预期工作......

答案 4 :(得分:0)

播放音频文件时遇到的这个问题

问题在于游戏中,当您暂停播放器时文件将停止但在恢复之前您必须将播放器的当前时间减少任何值,您可以将其减少一帧可能

设置完源码后,加载文件并暂停,然后

    myplayer.player.play();
    var currentTime = myplayer.player.getCurrentTime();
    myplayer.player.setCurrentTime(currentTime-0.1);
    myplayer.player.setCurrentRail();