Javascript 有可能对苹果设备上的Brightcove事件做出反应吗?

Javascript 有可能对苹果设备上的Brightcove事件做出反应吗?,javascript,brightcove,Javascript,Brightcove,我试图为移动设备构建一个视频/图像滑块,我正在使用Brightcove来显示我的视频 虽然由于Brightcove版本的限制,我在播放视频后很难让滑块工作,因为我删除了覆盖,Brightcove插入了一个Iframe,它几乎禁用了我所有的触摸事件(通过hammer.js处理) 让我向您展示我的代码: 滑块标记: <div id="wrapper"> <div class='slide'> //Brightcove Player get's inse

我试图为移动设备构建一个视频/图像滑块,我正在使用Brightcove来显示我的视频

虽然由于Brightcove版本的限制,我在播放视频后很难让滑块工作,因为我删除了覆盖,Brightcove插入了一个Iframe,它几乎禁用了我所有的触摸事件(通过hammer.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_video.js:


这实际上在我的桌面上的每个浏览器中都能完美地工作。但只要我在苹果设备上测试它,它就不工作了,因为不再加载Flash对象,而是一个iFrame。

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


将代码从旧的player API重构为新的player API的详细信息

这实际上是正确的答案,但我发现我不能使用Smart Player API,因为我们的广告公司不能为此制作广告。这听起来很不寻常。通常,Brightcove视频广告合作伙伴通过在播放器中运行插件/转换器来工作。即使他们在swf插件中使用Flash-only API,也不会阻止你在页面上使用js中的smart player API。广告是有效的,但出于某种原因,他们不希望我们在smart player API中实现它。我不知道这背后是否有跟踪原因,或者他们是否真的不确定SmartPlayerAPI是如何工作的。
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");
 }