You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React开发TikTok克隆项目时视频组件无法显示播放问题求助

问题排查及修复方案

1. 视频资源路径错误(最高概率)

React 不会解析 <source> 标签内写的相对路径静态资源,你需要按照你存放视频的位置调整路径:

  • 如果把 video.mp4 放在项目的 public 文件夹下,直接修改 source 的 src 为 /video.mp4 即可:
<source src="/video.mp4" type="video/mp4" />
  • 如果把 video.mp4 放在 src 目录下(比如 src/assets/video.mp4),需要先导入再使用:
    在 Video 组件顶部加导入语句:
import videoSrc from './assets/video.mp4'

然后修改 source 标签为:

<source src={videoSrc} type="video/mp4" />

2. 补充 video 标签必要属性

给 video 标签加预加载配置、播放逻辑容错处理,避免运行报错:
修改后的 Video 组件完整代码参考:

import React, { useRef } from "react";
import "./Video.css";
// 如果你把视频放在src/assets下就打开下面的导入
// import videoSrc from './assets/video.mp4'

function Video() {
  const videoRef = useRef(null);

  const onVideoPress = () => {
    // 加空值判断避免报错
    if (!videoRef.current) return
    if (videoRef.current.paused) {
      videoRef.current.play()
    } else {
      videoRef.current.pause()
    }
  };
  return (
    <div className="video">
      {/* 加preload预加载视频,加muted兼容浏览器播放限制 */}
      <video 
        height="500px" 
        width="300px" 
        onClick={onVideoPress} 
        ref={videoRef}
        preload="auto"
        muted
      >
        {/* 用public下的资源就写src="/video.mp4",用src下的就写src={videoSrc} */}
        <source src="/video.mp4" type="video/mp4" />
      </video>
    </div>
  );
}

export default Video;

3. 确认CSS没有遮挡

检查 Video.css 和 App.css 里有没有给 .video 或者 video 标签设置 display: none、opacity: 0、z-index 过低被其他元素遮挡的属性,调整对应样式即可。

内容的提问来源于stack exchange,提问作者Babilon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:57:02