当通过YouTube JavaScript API寻求一段时间时,player.getCurrentTime()需要一些时间才能返回正确的时间。相反,在一段时间内,它会返回过去的时间。
示例:
->当前视频时间: 10s
-> player.getCurrentTime() ->返回10s (正确)
-> player.seekTo(2s)
player.getCurrentTime() ->返回10s而不是2s (不正确)
->等2秒..。
-> player.getCurrentTime() ->返回12s (正确)
怎么能修好呢?
发布于 2019-10-11 04:15:04
我也遇到了同样的问题。我不知道如何才能准确地解决这个问题,但我正在用这样的方法来解决这个问题
intervalId = setInterval( () => {
var ytTime = ytplayer.getCurrentTime()
[... do stuff here...]
}, 500)..。这并不是最理想的,尽管它适用于我需要它做的事情。
我已经在谷歌问题跟踪器上发布了一个问题,追踪'Youtube API‘问题,在这里:https://issuetracker.google.com/issues/142517061
但如果我不得不猜的话,这将被标记为一个设计的作品。对seekTo的调用需要做一些工作来执行查找,而且该工作可能是异步的,所以当我们在完成该工作之前调用getCurrentTime时,我们将得到一个似乎无效的时间,但实际上任务还没有完成。
请注意,在您调用seekTo之后,如果您做了类似的事情
setTimeout( () => { console.log(ytplayer.getCurrentTime()) }, 2000 )那么你可能会看到正确的时间。
https://stackoverflow.com/questions/58032864
复制相似问题