2016-02-22 3 views
0

Функциональность: jPlayer играть список видео, каждое видео имеет другое имя mp4. Следовательно, после того, как первое видео закончит воспроизведение, jPlayer воспроизведет второе видео и продолжит воспроизведение видео до тех пор, пока он не достигнет последнего видео в списке видео, после чего он повторит и снова воспроизведет первое видео, повторив первый видео до последнего видео.JQuery видео не играет в цикле

Таким образом, он играет в цикле

Что было сделано:

  • Видео массив содержит
  • метод
  • jPlayer для воспроизведения видео список видео

Iss ue

После того, как jPlayer воспроизвел все видеоролики из списка видео: video_01 to video_0N, видео останавливается и не возвращается к 1-му видео, чтобы повторить список воспроизведения. Во-вторых, сообщ ошибка отображается, когда последнее видео из списка видео воспроизводится:

Error msg: Uncaught TypeError: Cannot read property 'split' of undefined jquery.jplayer.min.js:66

Таким образом, на данный момент, я мог получить некоторую помощь, чтобы исправить следующий вопрос и сообщить, что может быть возможные причины чтобы привести к этой ошибке, и видео jPlayer не воспроизводится с первого видео в списке.

Спасибо.

var videoList = ["lib/video/Video_01.mp4", "lib/video/Video_02.mp4", "lib/video/Video_03.mp4", "lib/video/Video_04.mp4", "lib/video/Video_05.mp4", "lib/video/Video_06.mp4", "lib/video/Video_07.mp4", "lib/video/Video_08.mp4", "lib/video/Video_09.mp4", "lib/video/Video_10.mp4"]; 
 

 
var videoIndex = 0; 
 

 
$(function() { 
 

 
    //Video Player for First page & to play subsequent videos after 1st video is completed 
 
    $("#Start_Video").jPlayer({ 
 
    ready: function() { 
 
     $("#Start_Video").jPlayer("setMedia", { 
 
     m4v: videoList[videoIndex] 
 
     }).jPlayer("play"); 
 
    }, 
 
    ended: function() { 
 
     videoIndex++; 
 

 
     if (videoIndex > videoList.length) { 
 
     videoIndex = 0; 
 
     } 
 

 
     $("#Start_Video").jPlayer("setMedia", { 
 
     m4v: videoList[videoIndex] 
 
     }).jPlayer("play"); 
 
    }, 
 
    swfPath: "javascript", 
 
    supplied: "webmv, ogv, m4v", 
 
    size: { 
 
     width: 1920, 
 
     height: 1080 
 
    } 
 
    }); 
 
    $("#HBOStart_Video").show(); 
 
});
<script src="javascript/jquery-1.11.3.min.js"></script> 
 
<script src="javascript/jquery-ui-1.10.3.min.js"></script> 
 
<script src="javascript/jplayer.playlist.min.js"></script> 
 
<script src="javascript/jquery.jplayer.min.js"></script> 
 
<div id="StartPage" align="center" style="position:absolute; width:1920px; height:1080px; background-repeat: no-repeat; z-index=1; top:0px; left:0px;"> 
 
    <div id="Start_Video" style="position:absolute; z-index:1;"></div> 
 

 
</div>

+0

Код фрагмента не удался, потому что вашему коду нужно jquery lib. –

+0

@ NasserGhiasi вы говорите, что моя jQuery lib устарела? Потому что я включил все необходимые jQuery lib. – Luke

+0

Возможно, ваш jquery устарел. jplayer demos used 1.11 jquery version –

ответ

1

Я думаю, что вы собираетесь по индексу здесь:

ended: function() { 
    videoIndex++; 

    if (videoIndex > videoList.length) { 
    videoIndex = 0; 
    } 

пример: videoList [10] индекс являются {0,1,2, ..., 9}, поэтому максимальное значение «videoIndex» может принимать 9, но videoList.length возвращает 10, поэтому если (videoIndex> videoList.length) такое же, как если бы (videoIndex> 10), которые позволяют «videoIndex» быть 10 ... (10> 10 ложных)

изменить ваш, если:

//(videoIndex == 10 ? videoIndex = 0) 
//the max value of videoIndex should be n-1, because the array is 0 based. 
if (videoIndex >= videoList.length) { 
    videoIndex = 0; 
    } 

погрешность:

Error msg: Uncaught TypeError: Cannot read property 'split' of undefined jquery.jplayer.min.js:66

происходит потому, что вы пытаетесь разделить содержание videoList [10] ... (с videoList определяется с именем 10 видео string: videoList [10])

+0

Спасибо вам за разъяснение! – Luke

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