Можно ли реагировать на события Brightcove на устройствах Apple?

Я пытался создать слайдер видео / изображений для мобильных устройств, и я использую Brightcove для отображения своих видео.

Хотя из-за ограничений в версиях Brightcove я изо всех сил пытаюсь заставить свой слайдер работать после воспроизведения видео, так как я удаляю свое наложение, и Brightcove вставляет Iframe, который отключает почти все мои сенсорные события (которые обрабатываются с помощью молотка. JS).

Позвольте мне показать вам мой код:

Разметка слайдера:

<div id="wrapper">
    <div class='slide'>
        //Brightcove Player get's inserted here. Images are displayed via background
    </div>
    <div class='slideprevious'>
    </div>
    <div class='slidefollowing'>
   </div>
</div>

Инициализация Brightcove:

var addVideo = function(){
    $('.slide').append('<div id="tsVideoPlayer"></div>');

    tsCreatePlayer('tsVideoPlayer', slides.eq(num).data('video-id'), 'XXXXXXXX');

    if(typeof bcPlayer === 'undefined'){
         $.when(
             //asynchronous loading of JS
             $.getScript( "http://admin.brightcove.com/js/BrightcoveExperiences_all.js" ),
             $.getScript( "/xxx/xxx/brightcove_video.js" ),
             $.Deferred(function( deferred ){
                 $( deferred.resolve );
             })
          ).done(function(){
             addVideo();
          });
     } else {
          addVideo();
     }

Обработка событий:

function getPlayerId(data) {
    for (var prop in data)
        return prop;
}
var player = bcPlayer.getExperience(getPlayerId(bcPlayer.experienceObjects)).modules.videoPlayer;

player.addEventListener(BCMediaEvent.PLAY, onPlayEventFired);
player.addEventListener(BCMediaEvent.STOP, onStopEventFired);

function onPlayEventFired() {
    alert("play");
}

 function onStopEventFired() {
    alert("stop");
 }

brightcove_video.js: http://pastebin.com/fTL5Uhqc

Это на самом деле работает безупречно на моем рабочем столе в любом браузере. Но как только я тестирую его на устройствах Apple, он не работает, так как Flash Object больше не загружается, а вместо этого iFrame.

1 ответ

Решение

Существует две версии API-интерфейса проигрывателя Brightcove - устаревшая версия проигрывателя Flash-only API и Smart Player API. Вы используете первый, который, как вы уже догадались, не работает с HTML-плеерами.

Этот документ на сайте поддержки Brightcove подробно описывает рефакторинг вашего кода от старого API к новому проигрывателю.

Другие вопросы по тегам