OnBeforePlay .seek无法在iPad上运行

时间:2013-10-09 23:15:49

标签: ios jwplayer jwplayer6

我在网上搜索,升级了玩家,重写了5次,现在完成了第5天的失败,但仍然无法完成Longtail的人告诉我的工作。 (别误会我的意思,我爱他们,但这让我准备跳下桥梁)。

我只是想加载一个可以播放Flash或iOS的视频,加载后立即使用.seek()方法转到视频中的特定点。 Longtail告诉我使用onBeforePlay()函数,因为iOS显然不尊重播放列表的起始值。这段代码就像烟雾一样,但忽略了iOS中的搜索。

任何人都可以帮我解决这个问题 - 它已成为我曾经工作过的最昂贵的剧本,而且我一直没有取得任何进展。 :( :( :(另外,我删除了所有控制台功能并尝试了,但结果相同。

http://www.tempurl.us/jw6e.html可以看到完整的代码/播放器。你可以看到,使用Flash,视频从60秒开始,但在iOS上,它从0开始。

jwp = jwplayer('jwp').setup({
    title: 'Single File Player', width: '720', height:'240', autostart: 'false', listbar: {position: "right",size: 400},
    sources:[
       {   file: 'http://media3.scctv.net/insight/mp4:nursing_4_clips_400.mp4/playlist.m3u8'},
       {   file: 'rtmp://fms.scctv.net/insight/nursing_4_clips_400.mp4'}
    ]
    }
);
jwp.onReady(function() {
    // Create a playlist item of the video to play
    var newItem = [
       {   title: 'Title4 ACUTE_ABDO_PAIN_400',
          image: 'playlistitem.png',
          sources:[
             {   file: 'http://media3.scctv.net/insight/mp4:ACUTE_ABDO_PAIN_400.mp4/playlist.m3u8'},
             {   file: 'rtmp://fms.scctv.net/insight/ACUTE_ABDO_PAIN_400.mp4'}
          ]
       }
    ];
    jwp.load(newItem);
});
jwp.onBeforePlay(function() {
     // This Works on PC/Mac with Flash, but does nothing on iPad/iPhone
     jwp.seek(60);
});

4 个答案:

答案 0 :(得分:0)

简单地关闭问题,这个问题的底线是iOS不允许自动启动 - 期间。知道这一点,所有预期不符合预期的事件都是有道理的。一旦用户使用Play启动流,一切都按预期工作。在我们的例子中,这仍然是一个问题,因为我们希望稍后在流中启动,但知道使处理它更易于管理。

答案 1 :(得分:0)

  

如果问题是iOS不允许自动启动 - 期间。知道,   所有预期不符合预期的事件都是有意义的。   一旦用户使用Play启动流,一切都可以正常工作   预期

然后你可以只为平板电脑和ios设备设置一个播放按钮,然后点击播放按钮, 调用jwplayer().play(),这可能是解决您的问题的方法,并且在您调用jwplayer.play之后,这只能通过触摸事件进行,触发游戏后其他事件将起作用。

否则即使你尝试jwplayer()。play()onReady(),或者自动启动也没有任何效果,因为iOs不会像你说的那样允许自动启动

答案 2 :(得分:0)

我在iOS上使用带有seek()和play()的onBeforePlay解决了这个问题。这项工作在桌面闪存和IOS上。使用参数androidhls:true

在Android上不起作用
jwplayer().onBeforePlay(function() { jwplayer().seek(60); });
jwplayer().play();

答案 3 :(得分:0)

正如评论中提到的Ethan JWPlayer使用onPlay事件。防止"循环缓冲"如你所说,只使用flag变量:

var isFirstStart = true,
    seekValue    = 60;

jwplayer().onPlay(function(){
    //exit if it's no first playback start
    if( !isFirstStart ) {
        return;
    }

    jwplayer().seek(seekValue);
    isFirstStart = false;
});