我有以下init:
Player.init(element.id, playerId, () => {
this.onReady(videoId, socket)
})
和回调:
onReady(videoId, socket){
let msgContainer = document.getElementById("msg-container")
let msgInput = document.getElementById("msg-input")
let postButton = document.getElementById("msg-submit")
let vidChannel = socket.channel("videos:" + videoId)
postButton.addEventListener("click", e => {
let payload = {body: msgInput.value, at: Player.getCurrentTime()}
vidChannel.push("new_annotation", payload)
.receive("error", e => console.log(e) )
msgInput.value = ""
})
msgContainer.addEventListener("click", e => {
e.preventDefault()
let seconds = e.target.getAttribute("data-seek") ||
e.target.parentNode.getAttribute("data-seek")
if (!seconds) { return }
Player.seekTo(seconds)
})
...
}
然而,玩家。当Player.getCurrentTime()函数调用正常工作时,seekTo函数在_player2.default.seekTo is not a function
中失败。
编辑:我也尝试了它与seekahead参数,相同的结果
根据YouTube的文档,player.seekTo(seconds:Number, allowSeekAhead:Boolean)
有两个需要设置的参数。
- 标识玩家前进时间的
seconds
参数。
和
-
allowSeekAhead
参数决定如果seconds
参数指定当前缓冲视频数据之外的时间,播放器是否会向服务器发出新的请求。
msgContainer.addEventListener("click", e => {
e.preventDefault()
let seconds = e.target.getAttribute("data-seek") ||
e.target.parentNode.getAttribute("data-seek")
if (!seconds) { return }
Player.seekTo(120, true)//120 seconds
})
有关更多信息,请查看此SO问题:
Youtube播放器JS API seekTo功能不工作
YouTube iFrame API .seekTo()不是一个方法?