Youtube Js Api - seekTo(time) 需要很长时间才能更新 player.getCurrentTime()
Youtube Js Api - seekTo(time) takes a long to update the player.getCurrentTime()
当通过 YouTube JavaScript API 寻找时间时,player.getCurrentTime()
需要一些时间到 return 正确的时间。相反,有一段时间,return是旧时光。
示例:
->当前视频时长:10s
-> player.getCurrentTime()
-> returns 10s (正确)
-> player.seekTo(2s)
-> player.getCurrentTime()
-> returns 10s 而不是 2s(不正确)
-> 等待 2 秒...
-> player.getCurrentTime()
-> returns 12s(正确)
如何修复?
我也遇到了同样的问题。我不确定如何修复它,确切地说,
但我正在通过使用
之类的东西来解决它
intervalId = setInterval( () => {
var ytTime = ytplayer.getCurrentTime()
[... do stuff here...]
}, 500)
...这不是最佳选择,但它可以满足我的需要。
我在跟踪 'Youtube API Service' 问题的 google 问题跟踪器上提出了一个问题,这里:
https://issuetracker.google.com/issues/142517061
但如果我不得不猜测,这将被标记为按设计工作。对 seekTo 的调用需要做一些工作来执行搜索,并且该工作是 可能 异步的,因此当我们在该工作完成之前调用 getCurrentTime 时,我们将获得一个时间这似乎无效,但实际上任务还没有完成。
请注意,在调用 seekTo 之后,如果您执行了类似
的操作
setTimeout( () => { console.log(ytplayer.getCurrentTime()) }, 2000 )
那么您可能会看到正确的时间。
当通过 YouTube JavaScript API 寻找时间时,player.getCurrentTime()
需要一些时间到 return 正确的时间。相反,有一段时间,return是旧时光。
示例:
->当前视频时长:10s
-> player.getCurrentTime()
-> returns 10s (正确)
-> player.seekTo(2s)
-> player.getCurrentTime()
-> returns 10s 而不是 2s(不正确)
-> 等待 2 秒...
-> player.getCurrentTime()
-> returns 12s(正确)
如何修复?
我也遇到了同样的问题。我不确定如何修复它,确切地说, 但我正在通过使用
之类的东西来解决它 intervalId = setInterval( () => {
var ytTime = ytplayer.getCurrentTime()
[... do stuff here...]
}, 500)
...这不是最佳选择,但它可以满足我的需要。
我在跟踪 'Youtube API Service' 问题的 google 问题跟踪器上提出了一个问题,这里: https://issuetracker.google.com/issues/142517061
但如果我不得不猜测,这将被标记为按设计工作。对 seekTo 的调用需要做一些工作来执行搜索,并且该工作是 可能 异步的,因此当我们在该工作完成之前调用 getCurrentTime 时,我们将获得一个时间这似乎无效,但实际上任务还没有完成。
请注意,在调用 seekTo 之后,如果您执行了类似
的操作setTimeout( () => { console.log(ytplayer.getCurrentTime()) }, 2000 )
那么您可能会看到正确的时间。