2016-01-31 4 views
1

http://jsfiddle.net/arvnnxpw/html5 + JS авто видео плейлист

ИТАК код 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; 
} 

ответ

0

Проблема заключается в том:

if (!current) { 
    return false; 
} 

Потому что, когда он пытается играть в первый раз current = 0 так !current возвращает истину. Если вы измените это, если для if(current == undefined) все в порядке.

This fiddle работает отлично для меня.

0

Зачем вам эта часть?

if (!current) { 
    return false; 
} 

Если вы удалите его, он будет работать. Когда воспроизведение начнется снова с первого видео, ток будет 0, 0 принуждают к false, !false станет true и playVideo просто возвращает false.

Смежные вопросы