gpt4 book ai didi

javascript - 使用 Youtube Javascript API 检查剩余时间

转载 作者:行者123 更新时间:2023-12-03 10:04:05 25 4
gpt4 key购买 nike

我正在嵌入 Youtube 视频并使用 YT JS API。鼓励用户使用他们的 Chromecast 来观看嵌入的视频。但是,当使用播放器中的按钮转换视频时,player.getCurrentTime()player.getPlayerState()变得卡住,并且onStateChange事件不会触发。

我能做些什么来解决这些问题,还是只有 youtube 才能解决这个问题?谢谢!

我的代码:

var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('ytplayer', {
events:{
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerStateChange(event){
console.log('Player StateChange: '+event.data); //This never runs when casting a video.
}

最佳答案

enter image description here

这是代码

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;

//execute as soon as the player API code downloads
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}

// execute when the onReady event fires
//starts video
function onPlayerReady(event) {

console.log("onPlayerReady");
console.log(event);

var duration = event.target.getDuration();

console.log("Duration:" + duration);

fillPlaybackRates();
}

// when the onStateChange event fires
function onPlayerStateChange(event) {

console.log("onPlayerStateChange")
console.log(event)

if (event.data == YT.PlayerState.PLAYING) {
console.log(YT);
}
}


var pause = $("#pause"),
start = $("#start"),
mute = $("#mute");

pause.on('click', function () {
player.pauseVideo();
});

start.on('click', function () {
player.playVideo();
});


var fillPlaybackRates = function () {

var playbackDropdownMenu = $(".dropdown-menu");
var playbackRates = player.getAvailablePlaybackRates();

console.log(playbackRates);

for (var i = 0; i < playbackRates.length; i++) {

playbackDropdownMenu.append('<li role="presentation"><a role="menuitem" tabindex="-1" href="#">' + playbackRates[i] + '</a></li>');
}
}


var playbackRatesButton = $("#playback-rates");
$(document).on('click','.dropdown-menu > li > a', function () {

var option = $(this).text();
playbackRatesButton.text(option);

player.setPlaybackRate(option);
});

这是完整的要点: iFrameYouTubeApi.html

您也可以在这里查看:Continuing with Chromecast: Embedding YouTube into Custom Receivers

关于javascript - 使用 Youtube Javascript API 检查剩余时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24355789/

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