的球员.seekTo不是一个函数



我有以下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()不是一个方法?

相关内容

  • 没有找到相关文章

最新更新