如何确定onStateChange事件是由API还是用户交互触发的

How to determine if onStateChange event was triggered by API or User interaction?

本文关键字:交互 用户 API 何确定 onStateChange 事件      更新时间:2023-09-26

我正在使用Youtube iFrame API作为一个小应用程序,让您与其他人同步观看视频。onStateChange事件让我知道玩家是否播放或暂停了视频,但它是否包含任何信息,说明该动作是通过用户点击播放/暂停按钮触发的,还是我的应用程序通过player.playVideo()功能触发的?

我需要知道区别,这样我就不会陷入无限循环的情况,玩家点击暂停,暂停事件被发送给另一个人,我通过player.pauseVideo()暂停他们端的视频,这会触发另一个onStateChange暂停事件,等等。

那么,onStateChange是告诉我事件是如何触发的,还是我必须自己想出一种方法来跟踪事件的发起人?

onStateChange只返回与玩家状态相关的整数数据。例如以下内容:

-1(未启动)0(已结束)1(播放)2(暂停)3(缓冲)5(视频提示)。

因此,您需要创建一个自定义代码来帮助识别事件的来源。不过,实现不能像创建全局变量那样简单,因为您希望与其他人同步视频。您将需要一些服务器交互来实现这一点。