如何检测BrightCove视频的结束?

时间:2013-02-04 18:05:13

标签: brightcove

这是我的javascript代码

$('.vdo_player1').html("<object id='myExperience185592012001' class='BrightcoveExperience'> <param name='bgcolor' value='#FFFFFF' /><param name='width' value='624' /> <param name='height' value='330' /><param name='playerID' value='1917830444001' /><param name='playerKey' value='AQ~~,AAABrLPpvnk~,7Q4Wbq_wEtPqLNVzhMk5nzVfbE6a6vSo' /> <param name='isVid' value='true' /><param name='isUI' value='true' /> <param name='dynamicStreaming' value='true' /> <param name='@videoPlayer' value='2045929343433301' /> </object> <script type='text/javascript'>brightcove.createExperiences();</script>");

视频正在被正确显示。但我需要跟踪视频何时结束并根据它调用struts 2动作类。我该怎么办?

2 个答案:

答案 0 :(得分:3)

虽然user1190992的答案适用于Flash播放器,但它不适用于HTML5播放器,因为它使用较旧的Flash-only Player API。您应该使用Brightcove的Smart Player API,它适用于Flash和HTML5播放器。

首先为您正在使用的播放器启用API(在Video Cloud studio,播放器设置中)。

在播放器代码中添加一些其他参数以启用API。

<param name="includeAPI" value="true" /> 
<param name="templateLoadHandler" value="onTemplateLoaded" /> 
<param name="templateReadyHandler" value="onTemplateReady" /> 

添加javascript以设置事件监听器

var player, modVP;

function onTemplateLoaded(experienceID) {
  player = brightcove.api.getExperience(experienceID);
  modVP = player.getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER);
}

function onTemplateReady(evt) {
  modVP.addEventListener(brightcove.api.events.MediaEvent.COMPLETE, onComplete);
}

function onComplete(evt) {
  alert("Video ended");
}

另见Brightcove的文档:http://support.brightcove.com/en/video-cloud/docs/listening-events-using-smart-player-api

注意:此答案和问题涉及Brightcove的传统智能播放器,这不适用于当前的播放器版本

答案 1 :(得分:0)

使用API,您可以编写类似

的函数
<script type="text/javascript">

   var bcExp;
   var modVP;

   function onTemplateLoaded(experienceID) {
       bcExp = brightcove.getExperience(experienceID);
       modVP = bcExp.getModule(APIModules.VIDEO_PLAYER);
       modVP.addEventListener(BCMediaEvent.COMPLETE, my_function);
   }

   function my_function(event) {
       /* DO YOUR STUFF IN HERE */
   }

</script>