在单独的客户端中同步视频

时间:2018-03-22 21:14:01

标签: javascript event-handling

单独客户中的两个video玩家正在通过交换播放/暂停请求进行同步:

$(videoA).on("pause", e => sendRequestToPauseVideoB());
$(videoA).on("play", e => sendRequestToPlayVideoB());

$(videoB).on("pause", e => sendRequestToPauseVideoA());
$(videoB).on("play", e => sendRequestToPlayVideoA());

当相应的视频收到播放或暂停请求时,它会分别拨打video.play()video.pause()

问题

当videoA暂停时,它会暂停videoB,会尝试暂停VideoA

这个通常工作正常,但假设videoA暂停,发送一个请求暂停视频B,但同时videoB已经播放,发送一个视频播放请求。

因此,有一个暂停请求传入videoB,一个播放请求传入videoA,这将导致两个视频切换(播放/暂停)状态和告诉对方改变到这个新状态,导致无限循环

Example

为什么会发生

基本上,如果视频收到播放/暂停请求,则应播放/暂停请求发送回其他视频

on Play on Pause 事件中,视频是否可以推断如果该事件是由请求引起的 ?当请求调用video.play()video.pause()时,或以某种方式阻止播放/暂停事件被触发?

你对此有什么好的解决方案吗?

0 个答案:

没有答案