Яркие события ловли
Мне нужно поймать событие, используя API Brightcove. Когда видео заканчивается, я выполняю функцию. Я следовал руководству по API на веб-сайте, но впервые использую 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>
Не уверен, что я делаю неправильно, но по окончании воспроизведения видео не отображается предупреждение. Любая идея?
Спасибо
Mauro
1 ответ
Обратные вызовы работают, если вы меняете плеер. Это будет означать, что вам нужно включить API для указанного игрока. Это можно сделать, отредактировав настройки проигрывателя в администраторе Brightcove (http://support.brightcove.com/en/docs/editing-settings-players).
Вам также может понадобиться указать ваши обработчики, добавив params к объекту flash, например
<param name="templateLoadHandler" value="myTemplateLoaded" />
Вам также понадобится изменить ваш обработчик событий, чтобы протестировать объект события. type
не data
вот так:
function onMediaEventFired(evt) {
if (evt.type === brightcove.api.events.MediaEvent.COMPLETE) {
alert('Hello!!!!');
}
}