微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

与ReactJS / Typescript / Socket.io同步视频时出现问题

如何解决与ReactJS / Typescript / Socket.io同步视频时出现问题

我正在开发一个应用程序作为锻炼,具有同步用户选择的youtube视频的功能,为此,我正在使用ReactJs,Socket.io和React-player,但是当我进入同步部分时我有个问题。

我打算执行以下操作:视频的进度时间存储在useState中,如果用户是房间的所有者,并且此常数每隔1秒更新一次进度,那么在启动视频时,handleStartVideo函数为触发该事件,将导致该用户从会议室所有者那里收到视频时会发现的currentTime,但是,我的问题是:我怎么能告知要使用的currenTime是仅在已定义的常量中由房间的所有者和对于普通用户没有定义的值?可以通过socket.io发送?

const [videoCurrentTime,setVideoCurrentTime] = useState<[]>([]);
const reactRef = useRef(null);

function handleNumberProgress(numberProgress:number) {
    if(userName === ownerRoom) {
        setVideoCurrentTime(numberProgress);
    }

}

function handleStartVideo() {
  if(userName === ownerRoom) {
    console.log("Você é o dono da sala");
  } else {
    reactRef.current?.seekTo(videoCurrentTime);
  }
}

<ReactPlayer 
    url="https://www.youtube.com/watch?v=ysz5S6PUM-U" 
    ref={reactRef}
    onStart={handleStartVideo}
    progressInterval={1000}
    onProgress={(e) => {handleNumberProgress(e.playedSeconds)}}
    config={{
        youtube: {
          playerVars: { 
              showinfo: 1,autoplay: 1,}
        },}}
/>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。