如何在不在 Reactjs 中播放视频的情况下获取 Youtube 视频的持续时间

How to get duration of Youtube video without playing the video in Reactjs

我是 ReactJS 的新手,我急需一些帮助。

所以我有一个视频目录,它只显示带有标签和覆盖持续时间的视频的缩略图。在我使用 Pete Cook 的 React-Player 之前,但我不希望我的视频播放器有分享、点赞和稍后观看按钮,所以我决定不使用它,而是使用视频播放器。我只是使用图像标签来显示缩略图,如果单击图像,我只会将 Youtube link 传递给视频播放器。

现在我的问题是我很难获得视频时长。当我还在用 React-Player 的时候,我点击播放按钮就可以得到它(不是我想要的结果但至少我能够得到持续时间)。有什么解决办法吗?

您的问题是您正在向 video-player 库的 Player 组件提供 Youtube URL,而该组件显然不支持 here.

我什至试过了,你不会得到持续时间值,也不会播放视频。 但是,如果您将 Youtube link 更改为例如这个 https://www.w3schools.com/html/movie.mp4

您会发现一切正常,您甚至可以在不播放视频的情况下从播放器的状态中获取 duration 状态。

const { player } = this.player.getState();
console.log(player.duration);

我将这两行添加到示例标题下 here 提到的名为 changeSource 的方法中。