ReactJS 组件 HTML5 视频

Posted

技术标签:

【中文标题】ReactJS 组件 HTML5 视频【英文标题】:ReactJS component HTML5 video 【发布时间】:2016-08-25 05:44:55 【问题描述】:

我正在尝试使用 html <video> 标签在我的网页中添加视频,并使用 ReactJS 和 JSX。即使我的组件有文件的路径,现在什么也没有播放

介绍视频 this.props:


  introVideo: "assets/media/Cherngloong_website_intro_Uz921bT.mp4",
  muted: "true"

组件:

class IntroVideo extends React.Component 
    constructor(props) 
        super(props);
        this.state = 
        ;
    

    render() 
        return(
            <div>
                <video className="video-container video-container-overlay" autoPlay="true" loop muted= this.props.muted >
                    <source src= this.props.introVideo  type="video/mp4" />
                </video>
            </div>
        );
    

这是我在开发者工具中看到的:

<video class="video-container video-container-overlay" autoplay="" loop="" muted="" data-reactid=".0.1.0.0">
    <source type="video/mp4" data-reactid=".0.1.0.0.0" src="assets/media/Cherngloong_website_intro_Uz921bT.mp4">
</video>

在开发者工具中,如果我右键单击src 值并单击"Open link in new tab",视频将在新标签中播放。所以我相信文件的路径是正确的。

我正在为另一个组件做同样的事情,但它是为一个图像做的,它工作正常:

关于this.props:


  aboutImg: "assets/media/The_Lion_Dances_Celebrate_Happy_New_Year_Clipart.jpg"

组件:

class About extends React.Component 
    constructor(props) 
        super(props);
        this.state = 
        ;
    

    render() 
        return(
            <div id="about-container">
                <div id="about-img-container">
                    <img src= this.props.aboutImg  />
                </div>
                <div id="about-text-container">
                    <p>
                        Message
                    </p>
                </div>
            </div>
        );
    

开发者工具:

<div id="about-container" data-reactid=".0.1.1">
    <div id="about-img-container" data-reactid=".0.1.1.0">
        <img  data-reactid=".0.1.1.0.0" src="assets/media/The_Lion_Dances_Celebrate_Happy_New_Year_Clipart.jpg">
    </div>
    <div id="about-text-container" data-reactid=".0.1.1.1">
        <p data-reactid=".0.1.1.1.0">Message</p>
    </div>
</div>

【问题讨论】:

具体是什么不起作用?您是否尝试过autoplay="autoplay",或者添加了controls="controls",以便您可以点击视频开始播放? 看起来在 JSX 中应该是 autoplay 没有值,或者 autoplay=true @loganfsmyth 试过 autoPlayautoPlay=true 没有运气=[ 那么具体是什么不起作用?你能看到预览图像,但它不会播放吗?你试过我的第一组建议了吗? @loganfsmyth 我尝试了你的建议,但没有成功=[我根本看不到任何视频。好像没有src 这是我在浏览器和开发工具上看到的:postimg.org/image/b0u3swswhpostimg.org/image/ccg3pz9ld 【参考方案1】:

它看起来像一条坏路。生成的 html 似乎很好。我在这里测试过:

http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_video

视频渲染得很好,我所做的只是改变了src。

<video className="video-container video-container-overlay" autoPlay="" loop="" muted="" data-reactid=".0.1.0.0">
  <source type="video/mp4" data-reactid=".0.1.0.0.0" src="mov_bbb.mp4">
</video>

【讨论】:

【参考方案2】:

Video React

播放视频的组件会是更好的选择,因为它有很多自定义功能

【讨论】:

【参考方案3】:

在这种情况下,我添加“?”在视频网址的末尾,效果很好。 通过使用 aws s3 存储桶中的视频,我得到了与 url 相同的情况。 所以我使用的网址为“assets/media/Cherngloong_website_intro_Uz921bT.mp4?”

【讨论】:

【参考方案4】:

将视频放在 public/videos 文件夹中,并将 src 写入如下

【讨论】:

以上是关于ReactJS 组件 HTML5 视频的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS:如何通过反应正确播放带有 onClick 事件的 html5 视频?

ReactJS画布drawImage不显示html5视频元素

ReactJs 换时间视频html5

视频更新ReactJs-第3节-组件&props

更新至 ReactJs-组件 & props | 先行者视频录像

在移动设备上,ReactJS 背景视频(样式化的组件)会跳转到全屏,您必须将其滑开才能将其移除。你如何解决这个问题?