1

我正在为一个项目实现一个自定义播放器。我首先认为这可能是我所做的一些更改(这些更改很小),但所有播放器在呈现 HTML 版本时似乎都失败了。有没有人有任何启动和运行的经验,这是我第一次与 BrightCove 合作。这是我的代码。播放器位于页面底部的模式中,并且在打开模式后动态抓取参考 ID 以加载视频。

HTML

<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
  <object id="myExperience" class="BrightcoveExperience">
    <param name="bgcolor" value="0x01000000" />
    <param name="width" value="602" />
    <param name="height" value="451" />
    <param name="playerID" value="2346987014001" />
    <param name="playerKey" value="AQ~~,AAAACNNhjOE~,7GG4lXihTUWE4HZdWRznisBnhfUh1o33" />
    <param name="isVid" value="true" />
    <param name="isUI" value="true" />
    <param name="dynamicStreaming" value="true" />
    <param name="includeAPI" value="true" />
    <param name="forceHTML" value="true" />
    <param name="templateLoadHandler" value="onTemplateLoad" />
  </object>
  <script type="text/javascript">brightcove.createExperiences();
</script>
<script language="JavaScript" type="text/javascript">
  var player, modVP, expMod;
  function onTemplateLoad(experienceID) {
    player = brightcove.api.getExperience(experienceID);
    modVP = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
  }
</script>

JS

var waitForModVp = function () {
        if( typeof modVP == 'object' ) {
          modVP.loadVideoByReferenceID(newSrc);
          $(window).on('resize.size-video', function(){
            expMod = player.getModule(brightcove.api.modules.APIModules.EXPERIENCE);
            var width = window.innerWidth*0.8,
            height = (window.innerWidth*0.8)*0.7491694352;
            if (width < 610) {
              expMod.setSize(width, height);
              $('.fullscreen-interior-video').css({
                'width' : width+'px',
                'height' : height+'px'
              });
            }
          })
        } else {
          window.setTimeout( waitForModVp, 250 );
        }
      }
      if ( thisData.templateReference == "brightcovePlayer") {
        waitForModVp();
      }

任何帮助将不胜感激,谢谢。

4

2 回答 2

1

我认为您还应该指定一个 templateReady 处理程序并将 APIModules.VIDEO_PLAYER 模块的初始化移至该处理程序。这是一个非常常见的错误,并且大多数时候只使用 templateLoadHandler 可以工作,尤其是在桌面上,所以它吸引了很多人在移动设备上使用。

请参阅http://support.brightcove.com/en/video-cloud/docs/getting-started-smart-player-api中的以下注释

重要提示:了解模板加载和模板就绪事件之间的区别:

  • templateLoad:播放器和 API 的所有数据都已被浏览器接收,您现在可以获取对整个播放器的引用(BrightcoveExperience)——不过,播放器尚未完全设置,如果您尝试调用任何方法此时,您正在设置赛车条件

  • templateReady:播放器现在已经完全实例化,可以通过 API 进行交互了——你应该只在模板就绪事件触发后调用 API 模块的方法

为避免过早调用方法,您可以跳过 templateLoad 事件,只处理 templateReady 事件。这样做的缺点是播放器 ID 没有传递给 templateReady 处理程序,因此您需要从发布代码中获取它才能获得对播放器的引用。

于 2013-06-20T04:20:11.717 回答
0

这似乎是一个问题:

<param name="bgcolor" value="0x01000000" />

变成:

<param name="bgcolor" value="#000000" />

播放器现在可以在所有平台上工作。

于 2013-06-19T16:59:26.617 回答