Player.seekTo不是一个功能

时间:2016-09-03 15:38:53

标签: youtube-api youtube-iframe-api

我有以下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()函数调用正常工作时,Player.seekTo函数失败并显示_player2.default.seekTo is not a function

编辑:我也尝试过使用seekahead参数,结果相同。

1 个答案:

答案 0 :(得分:1)

来自YouTube的documentationcell 4有两个参数需要设置。

  • player.seekTo(seconds:Number, allowSeekAhead:Boolean)参数,用于标识玩家应该前进的时间。

  • seconds参数确定如果allowSeekAhead参数指定的时间超出当前缓冲的视频数据,播放器是否会向服务器发出新请求。

所以你的代码必须如下所示:

seconds

有关详细信息,请查看此问题: