首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Brightcove双人API

Brightcove双人API
EN

Stack Overflow用户
提问于 2013-09-20 19:48:33
回答 1查看 494关注 0票数 2

我使用的是brightcove api (如下所示),但我的问题是我不能以这种方式管理两个播放器,我需要它:

代码语言:javascript
复制
<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>

有没有办法管理多个玩家?

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 00:18:56

许多使用Smart Player API的代码示例都使用全局变量,或者像我假设您正在做的那样,使用BCLS.player表示“体验”,使用BCLS.videoPlayer表示视频播放器模块等等。除非您为每个玩家维护一组单独的加载/就绪处理函数和一组单独的变量,否则这不能很好地处理多个玩家。这不会有很好的扩展性。

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

代码语言:javascript
复制
function onTemplateReady(event) {
  var player = brightcove.api.getExperience(event.target.experience.id);
  var videoPlayer = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
}

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

代码语言:javascript
复制
videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, function(event) {onPlay(event)})
//instead of videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, onPlay})

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

代码语言:javascript
复制
videoPlayer.addEventListener(brightcove.api.events.MediaEvent.PLAY, function(event) {onPlay(event,player)})

请看this example,它使用了上面的一些技术,这是一个在一个玩家玩的时候停止其他玩家的例子。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18916043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档