在 React Player 中添加字幕?

Ham*_*nan 5 javascript video reactjs react-player

我正在尝试在 React Player 组件中添加字幕,这是 React Player 组件的代码

  <ReactPlayer
          url={vidData.media[0]}
          controls={true}
          width={"100%"}
          height={"auto"}
          playing={playVid}
          muted={true}
          className="react-workout-player"
          config={{
            file: {
              attributes: {
                crossOrigin: "true",
              },
              tracks: [
                {
                  kind: "subtitles",
                  src: "https://prod.fitflexapp.com/files/captions/2021/11/18/23-b2j0oOsJ.vtt",
                  srcLang: "en",
                  default: true,
                },
              ],
            },
          }}
        />
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么,因为它们没有出现在视频中。请帮忙

Ham*_*nan 2

为您的字幕创建一个数组状态

const [captions_arr, setCaptions] = useState([]);
Run Code Online (Sandbox Code Playgroud)

yout Captions_arr 应该有这样的对象

  {kind: 'subtitles', src: 'subs/subtitles.en.vtt', srcLang: 'en', default: true},
Run Code Online (Sandbox Code Playgroud)

从这个数组中提取你需要的部分,我将它映射到一个新数组中

    var mySubtitle_arr= captions_arr.map((v) => ({
    kind: v.kind,
    src: v.src,
    srcLang: v.file_lang_code,
  }));
Run Code Online (Sandbox Code Playgroud)

映射后将此数组传递给您的反应播放器组件

 <ReactPlayer
            config={{
              file: {
                attributes: {
                  crossOrigin: "true",
                },
                tracks: mySubtitle_arr,
              },
            }}
            url={'YOUR_VIDEO_URL'}
            controls={true}
            width={"100%"}
            height={"auto"}
            playing={'YOUR_PLAYING_STATE'}
            muted={true}
           
          />
Run Code Online (Sandbox Code Playgroud)