2012-03-30 208 views
1

我需要使用Brightcove API捕获事件。当视频完成播放时,我执行一个功能。我遵循网站上的API指南,但这是我第一次使用Brightcove,所以我有点困惑。这是我的代码:Brightcove事件捕获

<script language="JavaScript" type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script> 

     <object id="myExperience1537710931001" class="BrightcoveExperience"> 
      <param name="bgcolor" value="#FFFFFF" /> 
      <param name="width" value="764" /> 
      <param name="height" value="455" /> 
      <param name="playerID" value="1537479248001" /> 
      <param name="playerKey" value="AQ~~,AAABZfMS9tk~,qKtLVPwo3pzgDkN5hMeILjqzKpujZdaw" /> 
      <param name="isVid" value="true" /> 
      <param name="isUI" value="true" /> 
      <param name="dynamicStreaming" value="true" /> 
      <param name="includeAPI" value="true" /> 
      <param name="templateLoadHandler" value="myTemplateLoaded" /> 
      <param name="templateReadyHandler" value="onTemplateReady" /> 
      <param name="@videoPlayer" value="1537710931001" /> 
     </object> 


       <script type="text/javascript"> 

        var player; 
        var modVP; 
        var modExp; 
        var modCon; 

      function myTemplateLoaded(experienceID) { 
       player = brightcove.api.getExperience(experienceID); 
       modVP = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER); 
       modExp = player.getModule(brightcove.api.modules.APIModules.EXPERIENCE); 
       modCon = player.getModule(brightcove.api.modules.APIModules.CONTENT); 
       modExp.addEventListener(brightcove.api.events.ExperienceEvent.TEMPLATE_READY, onTemplateReady); 
      } 

      function onTemplateReady(evt) { 
       modVP.addEventListener(brightcove.api.events.MediaEvent.BEGIN, onMediaEventFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.CHANGE, onMediaEventFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.COMPLETE, onMediaEventFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.ERROR, onMediaEventFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.PLAY, onMediaEventFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.PROGRESS, onMediaProgressFired); 
       modVP.addEventListener(brightcove.api.events.MediaEvent.STOP, onMediaEventFired); 
      } 


      function onMediaEventFired(evt) { 
       if (evt.type === brightcove.api.events.MediaEvent.STOP) { 
        alert('Hello!!!!'); 
       } 
      } 
</script> 

不知道我在做什么错,但警报不显示视频完成播放时。任何想法?

感谢
莫罗

回答

1

的回调,如果换成玩家失去工作。这表明您需要为指定的播放器启用API。这可以通过在Brightcove admin(http://support.brightcove.com/en/docs/editing-settings-players)中编辑播放器设置来完成。

您可能还需要通过向flash对象添加参数来指定处理程序,例如E.G.

<param name="templateLoadHandler" value="myTemplateLoaded" />

你还需要改变你的事件处理程序,以测试该事件对象typedata像这样:

function onMediaEventFired(evt) { 

     if (evt.type === brightcove.api.events.MediaEvent.COMPLETE) { 
      alert('Hello!!!!'); 
     } 
    } 
+0

我照你的建议使在播放器的设置API,但它没有工作。认为在最后一个试图捕捉事件的函数中有错误。函数onMediaEventFired(evt){...} – Mauro74 2012-03-30 14:00:16

+0

我已经更新了我的答案,您必须评估事件类型,只有一些事件会有数据。 – 2012-03-30 14:22:04