我正在尝试通过JS API使用Youtube chromeless播放器,我遇到了seekto()函数的问题。
问题是有时候(我无法判断问题何时出现),向后调用未加载的视频中的某个点的seekTo()函数不会返回而是保持在当前时间。 / p>
这就是我所做的(想象视频长度为240秒):
那么,其他人是否有这个问题?
答案 0 :(得分:4)
发布一些代码将有助于我们为您提供帮助,但您尝试了player.seekTo(60, true);
- 第二个参数很重要 - 将其设置为true将使播放器向服务器发送新请求以获取视频。
答案 1 :(得分:0)
我遇到了你所描述的同样问题。我发现,如果你查询API的视频持续时间,然后寻找到后面的位置,那么它似乎工作。
例如,这是我的测试:
var duration = ytplayer.getDuration();
ytplayer.seekTo(0, true);
它告诉我总是回到初始位置。
答案 2 :(得分:0)
我遇到了同样的问题,但这些解决方案都不适用于我。我最终使用它来使用HTML5查看器(Chrome和Firefox)
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING){ // for Chrome and Firefox to "restart" properly
var ct = player.getCurrentTime();
var dur = player.getDuration();
if (ct > (dur-.5) ){
player.seekTo(0, true);
}
}
}
答案 3 :(得分:0)
小心,在文档中说:
“玩家将在此之前前往最近的关键帧,除非玩家已经下载了用户正在寻找的视频部分。在这种情况下,玩家将前进到由Flash播放器的NetStream对象的seek()方法指定的指定时间之前或之后的最接近的关键帧。(有关更多信息,请参阅Adobe的文档。)“
https://developers.google.com/youtube/js_api_reference?hl=fr#seekTo