2012-03-30 5 views
1

Brightcove API를 사용하여 이벤트를 catch해야합니다. 동영상 재생이 끝나면 기능을 실행합니다. 웹 사이트의 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 관리자 (http://support.brightcove.com/en/docs/editing-settings-players)에서 플레이어 설정을 편집하여 수행 할 수 있습니다.

flash 객체에 params를 추가하여 핸들러를 지정해야 할 수도 있습니다 (E.G.

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

또한 이벤트 객체 type과 같이하지 data 테스트 이벤트 핸들러를 변경해야합니다

:

function onMediaEventFired(evt) { 

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

당신이 플레이어의 설정에서 API를 가능하게 제안 내가 한을하지만, 그것은 작동하지 않았다. 마지막 기능에서 이벤트를 잡으려고 뭔가 잘못되었다고 생각하십시오. function onMediaEventFired (evt) {...} – Mauro74

+0

내 대답을 업데이트 했으므로 이벤트 유형을 평가해야하며 일부 이벤트에만 데이터가 있습니다. –