2012-03-30 144 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