HTMl5 + JS自动视频播放列表

时间:2016-01-31 22:25:58

标签: javascript jquery html5

http://jsfiddle.net/arvnnxpw/

好的,所以当js代码到达最后一个视频时它停止而不是返回到第一个视频,我该如何解决?

我尝试了多种方式,但是在播放完最后一个视频后,我无法让它返回到第一个视频。

$(function() {
var $videos = $("#playlist li");
var $video = $("#videoarea");
var current = 0;
var max = 1;

function playVideo(video) {
    current = elIndex($videos, video);
    if (!current) {
        return false;
    }
    $video.attr({
        "src": $(video).attr("movieurl"),
        "autoplay": "autoplay"
    })
}

$video.attr({
    "src": $videos.eq(current).attr("movieurl"),
        "autoplay": "autoplay"
})

$video.on('ended', function () {
  if (current == max) {
        playVideo($videos[0]);
    } else {
                playVideo($videos[current + 1]);
    }
});

function elIndex(parent, el) {
    for (var i = 0; i < parent.length; i += 1) {
        if (parent[i] === el) {
          return i;   
        }
    }

    return null;
}

2 个答案:

答案 0 :(得分:0)

为什么需要这部分?

if (!current) {
    return false;
}

如果你删除它,它的工作原理。 当播放从第一个视频重新开始时,当前将为00强制为false!false将变为true和{ {1}}只返回playVideo

答案 1 :(得分:0)

问题是:

str = "SELECT * FROM BillingInfo WHERE (Code = @p1)"
Dim cmd As OleDbCommand = New OleDbCommand(str, con)
cmd.Parameters.Add("@p1", OleDbType.VarWChar).Value =  CodeText.Text 
dr = cmd.ExecuteReader

因为当它再次尝试播放第一个时if (!current) { return false; } 所以current = 0返回true。如果您更改!current,那么一切正常。

This fiddle对我来说很好。