gpt4 book ai didi

javascript - eekTo() 不是函数 YouTube iframe API 错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:00 25 4
gpt4 key购买 nike

我正在使用 Wordpress 插件添加视频的时间戳链接,该链接将自动搜索特定时间范围的视频。

Javascript:

        function onYouTubeIframeAPIReady(){

console.log('Confirmation of call to onYouTubeIframeAPIReady()');

var STT = {
settings: STTSettings,
media: undefined,
skipTo: undefined,
isHTML5: false,
isYoutube: true,

doHTML5Skip: function() {
STT.media.removeEventListener('canplaythrough', STT.doHTML5Skip);
STT.media.currentTime = STT.skipTo;
STT.media.play();
},

doYoutubeSkip: function() {

STT.media.seekTo(STT.skipTo);
STT.media.playVideo();
}

};




STTSkipTo = function(time) {
var audio = document.getElementsByTagName('audio'),
video = document.getElementsByTagName('video'),
iframe = document.getElementsByTagName('iframe'),
timeArray = time.split(':').reverse(),
seconds = parseInt(timeArray[0]),
minutes = timeArray.length > 1 ? parseInt(timeArray[1]) : 0,
hours = timeArray.length > 2 ? parseInt(timeArray[2]) : 0;

STT.skipTo = seconds + (minutes * 60) + (hours * 3600);

if (STT.media) {
console.log(STT.media.seekTo);
STT.doSkip();

return;
}

if ((parseInt(STT.settings.link_audio) && audio.length) ||
(parseInt(STT.settings.link_video) && video.length))
{
STT.doSkip = STT.doHTML5Skip;

if (parseInt(STT.settings.link_audio) && audio.length) {
STT.media = audio[0];
} else {
STT.media = video[0];
}

STT.media.addEventListener('canplaythrough', STT.doHTML5Skip);
STT.media.load();
STT.media.play();
return;
} else if (parseInt(STT.settings.link_youtube && iframe.length)) {
// Inspect the iframes, looking for a src with youtube in the URI
for (var i = 0; i < iframe.length; i++) {
if (iframe[i].src.search('youtube') !== -1) {
// Set up the JS interface
STT.doSkip = STT.doYoutubeSkip;

iframe[0].id = 'stt-youtube-player';
STT.media = new YT.Player('stt-youtube-player', {
events: {
onReady: STT.doYoutubeSkip
}
});
return;
}
}
}

console.log('Skip to Timestamp: No media player found!');
return;
}

}

在我的本地主机上,该插件可以无缝运行,但在我的托管网站上,我收到以下堆栈错误,如下所示:

Uncaught TypeError: STT.media.seekTo is not a function enter image description here

我认为由于某种原因,该网站无法加载 www-widgetapi.js(它是 YouTube iframe API 的依赖项),因此无法生成所需的函数定义。但是,我确实尝试将脚本手动包含在 header 中,但它仍然不起作用。

如果有人知道任何其他 WordPress 插件,请提供建议。

最佳答案

基于此documentation ,您需要设置player.seekTo(seconds:Number,allowSeekAhead:Boolean)的两个参数。

Seeks to a specified time in the video. If the player is paused when the function is called, it will remain paused. If the function is called from another state (playing, video cued, etc.), the player will play the video.

  • seconds 参数标识玩家应该前进的时间。

    播放器将前进到该时间之前最近的关键帧,除非播放器已经下载了用户正在查找的视频部分。

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

应该是这样的:Player.seekTo(120, true)//120秒

关于javascript - eekTo() 不是函数 YouTube iframe API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43216661/

25 4 0
文章推荐: javascript - javascript 和 css 的评级系统问题
文章推荐: c++ - 如何遍历不同类型类的数组
文章推荐: html - Angular 6 NgClass 更改标签中的 css 类
文章推荐: javascript - 如何将