gpt4 book ai didi

javascript - Youtube API - SeekTo 有时不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:34:17 28 4
gpt4 key购买 nike

我试图让用户使用以下功能在 YouTube 视频中查找特定时间:

    function setCurrentTime(slideNum) {
var object = <?php echo json_encode($matches); ?>;
if ('seekTo' in player.trackingVideoId){
var seekTime = object[0][slideNum];
player.trackingVideoId.seekTo(HHmmssToSeconds(seekTime));
}
}

在哪里

var object = [["00:00:00","00:01:07"],["00","00"],["00","01"],["00","07"]];

player.trackingVideoId = new YT.Player('trackingVideoId');

<iframe id="trackingVideoId" type="text/html" width="340" height="210" src="https://www.youtube.com/embed/D77wXvwChtU?enablejsapi=1" frameborder="0"></iframe>

<input type="button" value="Seek" onclick="setCurrentTime(1)">

它有时工作正常,有时不工作,并出现以下错误(在 firefox consol 上):

TypeError: invalid 'in' operand player.trackingVideoId

if ('seekTo' in player.trackingVideoId){

并且在评论条件时 if ('seekTo' in player.trackingVideoId){

出现如下错误

Uncaught TypeError: Cannot read property 'seekTo' of undefined 

更新:

我在 onYouTubeIframeAPIReady() 中初始化了它 - 正如您的链接中那样。但是,我把 setCurrentTime(slideNum) 放在 onYouTubeIframeAPIReady() 函数外面,我试着把它放在里面,还有一个错误是 setCurrentTime 没有定义。

我正在尝试寻找用户点击按钮的具体时间

<input type="button" value="Seek" onclick="setCurrentTime(0)">

你可以试试@ http://ilstream.com/video_slides/video_slides.php

最佳答案

我认为您没有初始化 YouTube 播放器。
YT.Player 可以在 onYouTubeIframeAPIReady 后实例化。
(请在您的控制台中使用“console.dir(player.trackingVideoId)”进行检查)

我建议您按照相同的方式实现代码。
https://developers.google.com/youtube/iframe_api_reference#Getting_Started

更新:
请尝试此代码,并与您的代码进行比较。
它对我来说似乎工作正常(Windows7/Chrome 37.0.2062.124 m)。

<!DOCTYPE html>
<html>
<body>
<div id="player"></div>
<input type="button" value="Seek0" onclick="setCurrentTime(0)" />
<input type="button" value="Seek1" onclick="setCurrentTime(1)" />
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '210',
width: '340',
videoId: 'D77wXvwChtU',
});
}
function setCurrentTime(slideNum) {
var object = [ 60, 120 ];
player.seekTo(object[slideNum]);
}
</script>
</body>
</html>

关于javascript - Youtube API - SeekTo 有时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066489/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com