我在使用youtube IFrame API创建的网页上有一个youtube播放器
当我得到onStateChange
事件时,如代码示例中所示:
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
当调用onPlayerStateChange
时,我希望能够区分
- 用户点击播放器UI并更改状态(播放、暂停等)
- 已进行API调用以更改状态(
player.playVideo()
、player.pauseVideo()
等)
目前,两者的结果完全相同。
-
我想你会遇到跨域iframe的问题。
- iframe跨域策略问题——一种解释
- 跨域iframe问题-如果页面和iframe页面都位于同一域,则解决方案
- 如何跟踪嵌入式视频(youtube、vimeo等)的点击事件?(跟踪播放次数)-类似的问题和答案,这是不可能的
-
正如我在评论中提到的,在传递给事件侦听器的事件对象中可能有一些有用的信息。我浏览了至少两个级别,没有发现用户点击操作和API调用之间的区别。然而,对象中有很多信息,可能还有一些信息有助于区分这两个动作。
-
如果您的代码正在进行API调用,也许您可以通过其他方式跟踪它。然后您的代码可以判断是否进行了API调用。也许可以存储当前调用和时间戳——类似的东西。
-
最后,也许还有另一种方法可以捕捉你想要的信息。你的问题并没有具体说明最终目标。我建议探索替代方案,因为简单的解决方案似乎是不可能的。