【发布时间】:2019-07-23 11:29:18
【问题描述】:
我有以下启动设置:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
然后在 onPlayerReady 处理程序中,我将事件侦听器添加到 iframe 外部的按钮:
function onPlayerReady(event) {
button.addEventListener('click', () => event.target.playVideo());
}
在onPlayerStateChange 我只是记录正在发生的事情:
function onPlayerStateChange(event) {
console.log(event.data);
}
在 Chrome (v.72.0.3626.119) 中点击该按钮后,控制台中有 3 个条目:-1 (UNSTARTED), 3 (BUFFERING), -1 (UNSTARTED)。当我再次尝试按下按钮时,没有任何反应。
这在 Firefox 中完美运行,IE 在控制台中提供:-1 (UNSTARTED), 3 (BUFFERING),1 (PLAYING),然后视频开始播放。
你知道怎么解决吗?
【问题讨论】:
-
我的 JS 落后了,但 event.target.playVideo() 周围应该有大括号吗?我现在遇到同样的问题 - 它停止处理已经工作多年的代码 - 所以它可能不是你。编辑:我认为这是谷歌的问题。甚至developers.google.com/youtube/youtube_player_demo 的演示页面也不起作用。编辑 2:我还注意到 player.playVideo() 正在返回 Player 对象。文档说它没有回报(无效)。