我在网上搜索,升级了玩家,重写了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);
});
答案 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;
});