Javascript 当前时间无法获取youtube视频

Javascript 当前时间无法获取youtube视频,javascript,html,youtube-api,Javascript,Html,Youtube Api,我的HTML页面中嵌入了YouTube视频。我正在尝试获取YouTube视频的当前时间。我用那个问题的答案创建了这样的页面 () 当我试图显示出现错误的时间时:“getCurrentTime不是函数” HTML 玩 表演时间 VideoHighlightStart: JavaScript <script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/ifram

我的HTML页面中嵌入了YouTube视频。我正在尝试获取YouTube视频的当前时间。我用那个问题的答案创建了这样的页面 ()

当我试图显示出现错误的时间时:“getCurrentTime不是函数”

HTML


玩
表演时间



VideoHighlightStart:
JavaScript

<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', {
        events: {
            'onReady': onPlayerReady
        }
    });
}

function onPlayerReady(event) {
    event.target.playVideo();
}


function ShowTime() {

    alert(player.getCurrentTime());
} 


</script>

var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
活动:{
“onReady”:onPlayerReady
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
函数ShowTime(){
警报(player.getCurrentTime());
} 

您应该通过YT-API加载视频,以便正确初始化
播放器,从而通过API访问。基本上,您需要从HTML中删除
iframe
,而是让YT-API为您创建iframe

请尝试以下操作:

var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('it'{
高度:'315',
宽度:“560”,
videoId:'FHtvDA0W34I',
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
var done=false;
函数onPlayerStateChange(事件){
如果(event.data==YT.PlayerState.PLAYING&&!done){
设置超时(停止视频,6000);
完成=正确;
}
}
函数stopVideo(){
player.stopVideo();
}
函数ShowTime(){
警报(player.getCurrentTime());
}

表演时间


尝试将
new YT.player('player'
中的
player
更改为new
YT.player('it'
),或者将
id=“it”
更改为
id=“player”
在您的HTML中有一支笔经过修改后可以使用
基本上,您需要从HTML中删除iframe,这不是问题。唯一的问题是
id=“it”
中的
与JS代码中的
中的“player”
相比-没有理由不使用问题中的代码。你是对的。我发现错误的id有点晚了。
<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', {
        events: {
            'onReady': onPlayerReady
        }
    });
}

function onPlayerReady(event) {
    event.target.playVideo();
}


function ShowTime() {

    alert(player.getCurrentTime());
} 


</script>