【问题标题】:Unable to seekTo or skip to time using <video> for MP4 files无法为 MP4 文件使用 <video> 搜索或跳转到时间
【发布时间】:2022-11-02 13:13:31
【问题描述】:

我似乎无法使用 ReactPlayer 跳到特定时间。

这是我的代码。

import React, { useRef } from "react";
import ReactPlayer from "react-player";

function VideoPlayer(props) {
  const { video, setCurrTime, setAddComment } = props;

  const playerRef = useRef();

  const writeComments = () => {
    if (playerRef.current) {
      setCurrTime(playerRef.current.getCurrentTime());
      setAddComment(true);
    }
  };

  return (
    <div className="player-wrapper">
      <ReactPlayer
        ref={playerRef}
        className="react-player"
        width="100%"
        height="100%"
        url={`http://127.0.0.1:8000${video.video}`}
        controls
        onPause={writeComments}
      />
    </div>
  );
}

export default VideoPlayer;

我怀疑它可能是文件格式,MP4。

【问题讨论】:

    标签: reactjs video mp4 react-player


    【解决方案1】:

    不幸的是,playerRef 没有设置为您可以使用的值。

    第一个警告:https://github.com/cookpete/react-player/issues/1508 这是一个关于 React 的 StrictMode 的公开问题,通常在 React 18 的新项目中启用。它破坏了播放器上的 src 设置,因此它不起作用。如果你升级到 React 18,最简单的但不理想的解决方案是禁用 React.StrictMode。

    如果您的播放器正在加载,则说明您使用的是 React 17 或者您没有使用 StrictMode。

    因此,如果您的视频正在加载,请使用 ReactPlayer 的 onReady 设置您的 playerRefplayer 传递给您的 onReady 处理程序是 ReactPlayer 的实际实例,它具有您正在寻找的方法。

    import React, { useRef } from "react";
    import ReactPlayer from "react-player";
    
    function VideoPlayer(props) {
      const { video, setCurrTime, setAddComment } = props;
    
      const playerRef = useRef();
    
      const writeComments = () => {
        if (playerRef.current) {
          setCurrTime(playerRef.current.getCurrentTime());
          setAddComment(true);
        }
      };
    
      return (
        <div className="player-wrapper">
          <ReactPlayer
            className="react-player"
            width="100%"
            height="100%"
            url={`http://127.0.0.1:8000${video.video}`}
            controls
            onPause={writeComments}
            onReady={(player) => playerRef.current = player}
          />
        </div>
      );
    }
    
    export default VideoPlayer;
    

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多