Brightcove two players API

Brightcove two players API

本文关键字:API players two Brightcove      更新时间:2023-09-26

我正在使用 brightcove api,如指南所示(如下所示),但我的问题是我无法以这种方式管理两个玩家,我需要它:

<object id="VideoBrightcove?c=4&m=2&s=2" class="BrightcoveExperience">
  <param name="bgcolor" value="#FFFFFF" />
  <param name="width" value="480" />
  <param name="height" value="270" />
  <param name="playerID" value="2549948545001" />
  <param name="playerKey" value="AQ~~,AAABmA9XpXk~,-Kp7jNgisreVadKjzdyJfLcfukyXcGqB" />
  <param name="isVid" value="true" />
  <param name="isUI" value="true" />
  <param name="dynamicStreaming" value="true" />
  <param name="includeAPI" value="true" />
  <param name="templateLoadHandler" value="BCLS.onTemplateLoad" />
  <param name="templateReadyHandler" value="BCLS.onTemplateReady">
  <param name="@videoPlayer" value="1754261637001" />
</object>
<script>
    var BCLS = (function() {
        var player,APIModules,mediaEvent,videoPlayer;
        return {
            onTemplateLoad : function (experienceID) { 
                //do something
            },
            onTemplateReady : function (evt) { 
                //do something
            },
            onProgress : function (evt) {
                //do something
            },
            onBegin : function (evt) {
                //do something
            },
            onComplete : function (evt) {
                //do something
            }
        }
    }());
</script>

知道管理多个玩家吗?

使用智能播放器 API 的许多代码示例都使用全局变量,或者正如我假设的那样,BCLS.player用于"体验",BCLS.videoPlayer用于视频播放器模块等。这不适用于多个玩家,除非您为每个玩家维护一组单独的加载/就绪处理程序函数和一组单独的变量。这不会很好地扩展。

使用多个玩家的最简单方法是依赖传递给事件处理程序的事件,因为这包括 event.target.experience.id 处的玩家 ID。

function onTemplateReady(event) {
  var player = brightcove.api.getExperience(event.target.experience.id);
  var videoPlayer = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
}
使用

addEventHandler 时,您需要将函数包装在匿名函数中,而不是仅使用函数名称:

videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, function(event) {onPlay(event)})
//instead of videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, onPlay})

如果需要,您可以将其他模块等传递给这些函数,例如,如果在上面的onTemplateReady中完成此操作,则可以在播放器处理程序中使用player

videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, function(event) {onPlay(event,player)})

请参阅此示例,该示例使用了上述一些技术,这是在玩游戏时停止其他玩家的示例。