使用Bitmovin播放器寻找点播

问题描述 投票:0回答:4

我正在尝试显示具有预定开始时间的 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>
javascript media-player mp4
4个回答
2
投票

据我所知,“seek”属性在播放器配置中无效 - 文档中也没有说明。因此,为了实现所需的行为,您很可能必须使用 API 并在播放器实例上调用 .seek(x) 命令。

但是可能还有另一种方法可以做到这一点。也许最好直接与 Bitmovin 联系 - 我发现他们的支持团队反应非常迅速。


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);
}

0
投票

就像Stefan提到的直接在onReady中使用seek()一样,它对我有用。尽管我的问题是不同的,自动播放在 IE11 Win7 中不起作用,但我使用下面的 hack 来强制启动它。

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

0
投票

最近遇到了这个问题,因为上面的版本更新给定的代码对我不起作用,所以我想出了下面的代码。

const playerConfig = {
 key: "abcxyz",
 ui: false,
 playback: {
  muted: true,
  autoplay: true
 },
 events: {
  //will start playback again when video finishes playing
  playbackfinished: function () {
    this.play();
  }
 }

};

© www.soinside.com 2019 - 2024. All rights reserved.