VOD寻求与Bitmovin播放器

时间:2016-06-21 19:48:24

标签: javascript media-player mp4

我正在尝试以预定的开始时间显示VOD,但我无法找到如何执行此操作。 Bitmovin网站列出了播放器API函数,但没有任何教程如何使用它们。

我有SEEK,但我不知道它为什么不起作用?

它播放视频但是从0秒而不是40秒开始。

<div id="player"></div>
      <script type="text/javascript">
          var conf = {
              key:       "XXXXXXXXXXXXXXXXXXXX",

              source: {

                progressive:        "http://example.com/somevid.mp4",
                poster:         "http://example.com/someimage.jpg",
              },

                    playback : {
  autoplay         : true,
  seek: 40,
},

events: {

  onPlay                  : function() {
              //  alert("I am Playing!");

                            },

},

          };
          var player = bitdash('player');
          player.setup(conf).then(function(value) {
              // Success
              console.log('Successfully created bitdash player instance');
          }, function(reason) {
              // Error!
              console.log('Error while creating bitdash player instance');
          });
      </script>

3 个答案:

答案 0 :(得分:1)

据我所知,&#34;寻求&#34;属性在播放器配置中无效 - 它也未在documentation中说明。因此,为了实现所需的行为,您很可能必须使用API​​并在播放器实例上调用.seek(x)命令。

但可能有另一种方法可以做到这一点。也许最好直接与Bitmovin取得联系 - 我发现他们的支持团队非常敏感。

答案 1 :(得分:1)

在播放器配置中,您可以指定回放开始时的回调函数(onPlay),并在此函数内使用seek(pos)播放器API函数以秒为单位寻找所需位置。

例如:

var conf = {
    key:"XXXXXXXXXXXXXXXXXXXX",
    source: {
        progressive: "http://example.com/somevid.mp4",
        poster:      "http://example.com/someimage.jpg",
    },
    playback: {
        autoplay: true
    },
    events: {
        onPlay: function() {
            // seek to desired start position
            this.seek(40);
        }
    }
};

附注:内部事件回调this关键字绑定到玩家对象。

编辑:

每次用户暂停播放时,前一种方法都将寻求秒40,然后再次继续播放,因为每次用户继续播放时都会触发onPlay事件。为避免这种情况,更好的方法是:

var conf = {
    key:"XXXXXXXXXXXXXXXXXXXX",
    source: {
        progressive: "http://example.com/somevid.mp4",
        poster:      "http://example.com/someimage.jpg",
    },
    playback: {
        autoplay: true
    },
    events: {
        onReady: function() {
            this.addEventHandler('onPlay', seekToStart);
        }
    }
};

function seekToStart() {
    // remove event handler after first seek to avoid seeking 
    // to specified the position when user pauses and plays again
    this.removeEventHandler('onPlay', seekToStart);

    // seek to desired start position
    this.seek(40);
}

答案 2 :(得分:0)

就像Stefan提到在onReady中直接使用seek()一样,它对我有用。即使我的问题是不同的自动播放不能在IE11 Win7中工作,我使用下面的黑客强行启动它。

events: {
   onReady: function() {
     this.seek(0);
  }
}