如何阻止JWPlayer在视频结束时变黑

时间:2015-06-30 07:34:07

标签: html5 video screen jwplayer

每次JWPlayer播放视频时,它都会变黑。我只是展示了视频的最后一帧。有没有办法做到这一点?

<script type="text/javascript" src="jwplayer.js" ></script>

<script type="text/javascript">
 function changeVideo(filename) {
 jwplayer("video").remove();
 jwplayer("video").setup({
   file: filename,
   image: "img.jpg",
    height: 640,
    width: 480,
    controlbar: 'none',
    icons: 'false'
});
jwplayer('video').load();
jwplayer('video').play();
}
 </script>
</head>
<div id="video"></div>
<body>
<script type="text/javascript">
    jwplayer("video").setup({
        file: "vid.mp4",
        image: "img.jpg",
        height: 640,
        width: 480,
        controlbar: 'none',
        icons: 'false'
    });
</script>
<p><a href="javascript:void();" onclick="javascript:changeVideo('vid2.mp4');">Vid2</a></p>

4 个答案:

答案 0 :(得分:1)

它不会显示视频的最后一帧,但您可以提供海报图像,它将在播放前和播放后显示。比空白屏幕好。

答案 1 :(得分:0)

您可以使用我们的JavaScript API在视频结束前停止一秒。

我实际上为此写了一个小插件。

演示 - http://www.pluginsbyethan.com/github/stopatend.html

插件 - https://github.com/emaxsaun/stopatend

希望这能帮到你!

编辑:

对于您的changeVideo功能,请改用:

function changeVideo(filename) {
 jwplayer("video").setup({
   file: filename,
   image: "img.jpg",
    height: 640,
    width: 480,
    controlbar: 'none',
    icons: 'false',
    autostart: true
});
}

通过调用setup你基本上已经删除了,你不能单独执行load(),而执行load()与autostart = true相同,试试吧。

答案 2 :(得分:0)

以下是完整的HTML页面,了解如何执行此操作。

我无法在这里添加句号,因为答案太长了,但我已经测试了这个并且它有效。

<!DOCTYPE html>
<html>
<head>
    <title>Change Video</title>
    <script src="http://p.jwpcdn.com/6/12/jwplayer.js" type="text/javascript"></script>
</head>
<body>
    <div id="player"></div>
    <script type="text/javascript" language="javascript">
    jwplayer("player").setup({
        file: "http://content.bitsontherun.com/videos/w5co0c24-hV866gPy.mp4",
        image: "img.jpg",
        height: 640,
        width: 480,
        controlbar: 'none',
        icons: 'false'
    });
    //PUT ENTIRE STOP AT END SCRIPT HERE
     function changeVideo(filename) {
     jwplayer("player").setup({
       file: filename,
       image: "img.jpg",
        height: 640,
        width: 480,
        controlbar: 'none',
        icons: 'false',
        autostart: true
    });
    //PUT ENTIRE STOP AT END SCRIPT HERE
    }
    </script>
    <p><a href="#" onclick='changeVideo("http://vjs.zencdn.net/v/oceans.mp4");'>Vid2</a></p>
</body>
</html>

答案 3 :(得分:0)

有一种更简单的方法可以在视频结尾显示图像。只需包含此代码:

playerInstance.onComplete(function() {
  playerInstance.stop();
});

这适用于jwplayer版本7.如果您使用版本6,则需要升级到7才能删除徽标。你需要7键,但它是免费供个人使用。

我在自定义播放列表中使用此功能和多个视频。整个Javascript代码如下所示:

<script type="text/javascript">
var playerInstance = jwplayer("myElement");
playerInstance.setup({
  file: "fileA.mp4",
  image: "fileA.jpg",
  width: 996,
  height: 560,
  captions: {
  fontSize: 12,
  backgroundOpacity: 50
  },
  tracks: [{
    file: "fileA.srt",
    "default": true
  }]
});
playerInstance.onComplete(function() {
  playerInstance.stop();
});

function playVideo(video,img,cc) {
  playerInstance.load([{
    file: video,
    image: img,
    tracks: [{
      file: cc,
      "default": true
    }]
  }]);
  playerInstance.play();
};
</script>

自定义播放列表中的点击应该会调用pl​​ayVideo。如果您不使用字幕,则可以省略cc以及字幕和跟踪块。播放完成后,每个视频都会显示相应的图像。