0

我试图为移动设备构建一个视频/图像滑块,我正在使用 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 对象不再加载,而是一个 iFrame。

4

1 回答 1

0

有两个 Brightcove 播放器 API 版本——传统的仅 Flash 播放器 API 和智能播放器 API。您使用的是前者,您现在已经猜到它不适用于 HTML 播放器。

Brightcove 支持站点上的此文档详细说明了将您的代码从旧的播放器 API 重构为新的播放器 API。

于 2013-09-27T07:42:01.380 回答