如何处理本地视频文件Reactjs

时间:2019-05-04 04:58:00

标签: javascript reactjs

我需要一些帮助来处理reactjs中的本地视频文件...无法解决./assets/video.mp4错误...尝试了所有可能的方向。

其背后的想法是制作全屏视频,例如https://www.w3schools.com/howto/howto_css_fullscreen_video.asp 但是使用Reactjs ..

video.js

       import React from 'react';

       class Video extends React.Component {
       render(){
          return(
             <div className="myVideo">
                 <video controls autostart autoPlay src={this.props.src} type={this.props.type}/>
            </div>
             )
           }
         }

         export default Video;

index.js

      import React,{Component} from 'react';
import ReactDOM from 'react-dom';
import Video from './video';
import Robin from './assets/Robin.mp4'

const VIDEO = {
  src:Robin,
  type:'video/mp4'
 };

class App extends Component {
   constructor(props){
     super(props)
     this.state = {
       src: VIDEO.src,
       type:VIDEO.type
     }
   }

   render(){
     return(
       <div>
         <Video src={this.state.src} type={this.state.type}/>
       </div>
     )
   }

}
ReactDOM.render(<App />, document.getElementById('root'));

控制台错误:./ src / index.js 找不到模块:无法解析“ C:\ Users \ sanjs \ Desktop \ landing-video \ src”中的“ ./assets / *。mp4”

3 个答案:

答案 0 :(得分:2)

  1. 在您的 src 目录中创建一个 custom.d.ts
  2. 将此代码粘贴到该文件中
declare module '*.mp4' {
  const src: string;
  export default src;
}

应该可以!

答案 1 :(得分:0)

解决了!问题是文件名“ Robin .mp4”,我导入为“ Robin.mp4”,所以我将文件名更改为“ Robin.mp4”,就是这样。

答案 2 :(得分:-1)

也许您有一些拼写错误,这是导入本地视频的代码,它工作正常

  import React from "react";
  import "./App.css";
  import Video from "./video.mp4";

  function App() {
    return (
      <div className="App">
          <video controls autostart autoPlay src={Video} type="video/mp4" />
      </div>
    );
  }

  export default App; 

我将视频文件导入到app.js的同一目录中。也许这会对您有所帮助。