jQuery视频无法循环播放

时间:2016-02-22 15:30:32

标签: javascript jquery video h.264 jplayer

功能性: jPlayer播放视频列表,每个视频都有不同的mp4名称。因此,在第一个视频播放结束后,jPlayer将播放第二个视频并继续播放视频,直到它到达视频列表中的最后一个视频,之后它将重复播放第一个视频,重复第一个视频视频到最后一个视频。

因此,它正在循环播放

已完成的工作:

  • 视频数组包含视频列表
  • 播放视频的jPlayer方法

问题

jPlayer播放视频列表中的整个视频:video_01到video_0N后,视频停止播放并且不会循环回到第一个视频以重复播放列表。其次,播放视频列表的最后一个视频时会显示错误消息:

  

错误消息:未捕获的TypeError:无法读取未定义的jquery.jplayer.min.js的属性'split':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>

1 个答案:

答案 0 :(得分:1)

我认为你要在这里查看索引:

ended: function() {
  videoIndex++;

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

示例:videoList [10]索引为{0,1,2,...,9},因此最大值“videoIndex”可能为9,但videoList.length返回10,如果(videoIndex&gt; videoList) .length)与if(videoIndex&gt; 10)相同,它允许“videoIndex”为10 ...(10> 10假)

将你的if改为:

//(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;
  }

错误:

  

错误消息:未捕获的TypeError:无法读取未定义的jquery.jplayer.min.js的属性'split':66

发生

是因为你试图拆分videoList [10]的内容......(videoList定义了10个视频名称字符串:videoList [10])