reactjs - 在 React Video JS 中使用 videojs 插件

标签 reactjs overlay video.js

正如文档所提到的,我已经通过做这样的事情来初始化视频 js ...

    import React from 'react';
    import videojs from 'video.js'

    export default class VideoPlayer extends React.Component {
      componentDidMount() {
        // instantiate video.js
        this.player = videojs(this.videoNode, this.props, function onPlayerReady() {
          console.log('onPlayerReady', this)
        });
      }

      // destroy player on unmount
      componentWillUnmount() {
        if (this.player) {
          this.player.dispose()
        }
      }

      // wrap the player in a div with a `data-vjs-player` attribute
      // so videojs won't create additional wrapper in the DOM
      // see https://github.com/videojs/video.js/pull/3856
      render() {
        return (
          <div data-vjs-player>
            <video ref={ node => this.videoNode = node } className="video-js"></video>
          </div>
        )
      }
    }

我想在这个中集成 VideoJs Overlay 插件...... 所以我做了这样的事情......

import React from 'react';
import videojs from 'video.js'

export default class VideoPlayer extends React.Component {
  componentDidMount() {
    // instantiate video.js
    this.player = videojs(this.videoNode, this.props, function onPlayerReady() {

player.overlay({
            content: 'Default overlay content',
            debug: true,
            overlays: [{
              content: 'The video is playing!',
              start: 'play',
              end: 'pause'
            }, {
              start: 0,
              end: 15,
              align: 'bottom-left'
            }, {
              start: 15,
              end: 30,
              align: 'bottom'
            }, {
              start: 30,
              end: 45,
              align: 'bottom-right'
            }, {
              start: 20,
              end: 'pause'
            }]
          });
            });
      }

  // destroy player on unmount
  componentWillUnmount() {
    if (this.player) {
      this.player.dispose()
    }
  }

  render() {
    return (
      <div data-vjs-player>
        <video ref={ node => this.videoNode = node } className="video-js" id="videojs-overlay-player"></video>
      </div>
    )
  }
}

在执行此操作时会出现错误,例如 player.overlay 无法正常工作...

如果我执行 videojs.registerPlugin('overlay', overlay);

并调用覆盖函数,它给我错误,如 component Overlay is undefined

如何以 React 方式锻炼 videojs 插件????

最佳答案

使用前需要导入videojs-overlay包。 请按照以下步骤操作:

  1. 安装插件:npm i videojs-overlay --save
  2. 在 Player 类中导入包:import overlay from 'videojs-overlay';
  3. 在实例化播放器之前注册插件:videojs.registerPlugin('overlay', overlay);

然后,player.overlay({... 将按预期工作。

关于reactjs - 在 React Video JS 中使用 videojs 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45477449/

相关文章:

reactjs - 找不到 enzyme-adapter-react-16 的声明文件?

javascript - 用于绘制 MGRS 的叠加层

Primefaces 3.1 Overlay 面板在 IE8 上无法正常工作

javascript - 在video.js播放器上制作水印,成为播放和停止的监听器

javascript - 捕获和处理videojs的 'click'的 'bigplaybutton'事件不起作用

javascript - 是否可以从未导入 withRouter 的文件设置组件路由?

javascript - 为什么我的 onClick 事件不起作用?

iphone - 叠加在 Streaming MPMoviePlayerController 之上

javascript - 试图获得完整的视频时长但以 Nan 身份返回

javascript - 将 Prop 添加到 ...this.props