每当用户播放/暂停使用Video-React实现的视频时,我都会尝试执行一些逻辑:
<Player
ref={(player) => {
this.player = player;
}}
src={videoURL}
>
<BigPlayButton position="center" />
<ControlBar autoHide={false} className="my-class"></ControlBar>
</Player>;
因此用户可以通过三种方式播放/暂停视频:
因此,我需要检测这三个事件中的任何一个事件何时发生。
对于第一个事件,“使用BigPlayButton
他可以播放视频”,有人建议我自定义按钮本身。
对于第二个事件,“使用控制栏中的播放/暂停按钮”,我没有找到任何显示当用户单击控制栏按钮之一时如何检测 onClick 事件的内容。
对于第三个事件,“单击视频本身将播放/暂停它。” ,我什么也没找到。
我认为使用文档中提到的状态可以轻松解决所有三个问题:
State 我们使用 redux 来管理玩家状态。使用 getState 方法可以获取状态对象。这是所有州的列表。
这部分解决了暂停的问题:
paused:返回播放器是否已经暂停
但是,我没有找到在播放视频时改变的状态属性。最接近这个的是hasStarted:
hasStarted:返回视频是否已经开始
hasStarted 的问题在于它在第一次播放视频时被设置为 true。
因此,后续播放将不会被检测到。
我发现自己处于一种模棱两可的状态,其中this.player.paused
&this.player.hasStarted
都是true
。
欢迎任何建议。