添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

二、添加配置

播放按钮局中显示:class增加“vjs-big-play-centered”

import React, { useEffect, useRef } from 'react';
import VideoJs from 'video.js';
// import videozhCN from 'video.js/dist/lang/zh-CN.json'
import 'video.js/dist/video-js.css';
import styles from './index.less';
type VideoType = {
  video: string;
  photo: string;
const CommonVideo: React.FC<VideoType> = props => {
  const videoRef = useRef<any>(null);
  useEffect(() => {
    const player = VideoJs(
      videoRef.current,
        autoplay: false, // 自动播放
        muted: false, //静音
        preload: 'auto', // 预加载
        controls: true, // 是否显示控制条
        controlBar: {
          // 设置控制条组件
          // /* 设置控制条里面组件的相关属性及显示与否
          currentTimeDisplay: true,
          timeDivider: true,
          durationDisplay: true,
          remainingTimeDisplay: true, // 显示倒计时时间
          fluid: true,
          language: 'zh-CN', // 设置语言
          volumePanel: {
            inline: false,
          // */
          /* 使用children的形式可以控制每一个控件的位置,以及显示与否 */
          children: [
            { name: 'playToggle' }, // 播放按钮
            { name: 'currentTimeDisplay' }, // 当前已播放时间
            { name: 'progressControl' }, // 播放进度条
            { name: 'durationDisplay' }, // 总时间
              // 倍数播放
              name: 'playbackRateMenuButton',
              playbackRates: [0.5, 1, 1.5, 2, 2.5],
              name: 'volumePanel', // 音量控制
              inline: false, // 不使用水平方式
            { name: 'FullscreenToggle' }, // 全屏
      () => {
        player.src(props.video);
        player.poster(props.photo);
    return () => {
      player.dispose();
  }, [props]);
  return (
    <video
      ref={videoRef}
      preload="true"
      // className={styles.videoContent}
      className={['video-js', 'vjs-16-9', 'vjs-big-play-centered', styles.videoContent].join(' ')}
      playsInline
    ></video>
export default CommonVideo;

参考:https://blog.csdn.net/tangkthh/article/details/102862213

一、安装npm i video.js二、添加配置播放按钮局中显示:class增加“vjs-big-play-centered”import React, { useEffect, useRef } from 'react';import VideoJs from 'video.js';// import videozhCN from 'video.js/dist/lang/zh-CN.json'import 'video.js/dist/video-js.css';import. import React from 'react' ; import { useVideojs } from 'react-videojs-hook' ; import 'video.js/dist/video-js.css' ; const App = ( ) => { const onPlay = ( currentTime ?: number ) => { console . log ( "Video played at: " , currentTim 1.React Hooks简介 React Hooks就是用函数的形式代替原来的继承类的形式,并且使用预函数的形式管理state,有Hooks可以不再使用类的形式定义组件了。这时候你的认知也要发生变化了,原来把组件分为有状态组件和无状态组件,有状态组件用类的形式声明,无状态组件用函数的形式声明。那现在所有的组件都可以用函数来声明了。 2.useState多状态声明 useState是react自带的一个hook函数,它的作用是用来声明状态变量。 const [ c
首先我们知道Hook是可以100%向下兼容的,就是说即便在你以前的代码中加入hook写法也没有问题,同时提供了一个更直接的API包括props, state,context,refs以及生命周期,hook编写时使用的代码量也会更少,但这也是一个过渡,hook使用去掉了class的概念,虽然以前的写法依旧可行,但新增hook的同时官方也表示没有计划移除class,这对程序员来说是很友好的,但react更推荐用户使用hook来编写代码 首先我们看一下state在传统和hook中的使用方式区别 首先演示.
文章目录一、React-Hook是什么?二、hook使用步骤2.1 State Hook2.2 Effect Hook2.3 Context Hook2.4 Reducer Hook2.5 callback Hook2.6 memoized hook2.7 useRef2.8 ImperativeHandle Hook总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、React-Hook是什么? HookReact 的新增特性。它可以让你在不编写 class 的情况下使用 stat
一个简单的React钩子,可轻松将video.jsReact集成 react-hook-videojs 由于video.js如何更改DOM,因此将video.jsReact集成可能会有些棘手。 特别是如果您想支持video.js组件更新并正确处理任何旧播放器。 React Hooks帮助我们很好地打包了此程序,使用此程序包所需要做的就是: import React from "react"; import { useVideoJS } from "react-hook-videojs"; const App = () => { const videoUrl = "http://techslides.com/demos/sample-videos/small.mp4"; const { Video, player, ready } = 使用方法: import React, { useEffect, useRef, useState } from 'react'; import videojs from 'video.js'; const videoDetailsDom = useRef(); const [flage,setFlage] = useState(true) //安卓12控制声音自动播放 let optiones
react使用 video.js 播放 hls(m3u8)格式的视频 简介:公司业务需求,由于后端把 mp4 视频转码成 m3u8 视频供手机端播放,导致后台系统播放不了 m3u8 格式的视频(原来是直接用的原生 video 标签播放)。 项目主要依赖:(先安装,步骤略) create-react-app:3.0.0 "react": "^16.11.0", "react-rout...
基于 react hooks 的 video 播放组件,结构简单,代码简洁,扩展方便。 ReactjsPlayer 遵循 少即是多(Less is more) 的设计原则,具有以下特点: 结构简单:使用 react hooks 做状态管理,将不同的状态拆分到不同的 react custom hooks 中,ReactjsPlayer 中进行组合 扩展方便:扩展时实现对应的 react custom hooks 并在 ReactjsPlayer 中根据条件进行加载 代码简洁:只做播放器内部的状态管理和控制栏显示与控制 理解容易: ReactjsPlayer 事件基于 vidoe 进行扩展,减小理解成本 接口统一:ReactjsPlayer 与 GrindPlayer 封装了统一的状态和方法,并通过 ReactPlayerContext 导出 使用相对复杂: 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。 npm run build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 eject ,您将无法返回! 如果您对构建工具和配置选择不满意,则可以随时eject 。 此命令将从您的项目中删除单个生成依赖项。 相反,它将所有配置文件和传递依赖项(webpa
React是一个基于组件化的JavaScript库,它允许开发者以一种高效、可重用的方式构建用户界面。为了使用React,开发者需要在其项目中引入两个主要的库文件:react.development.js和react-dom.development.js。这两个文件提供了React的核心功能,包括虚拟DOM、事件处理、组件和状态管理等功能。 同时,为了将React的代码转换为浏览器可以识别的JavaScript代码,开发者还需要使用Babel这个JavaScript转换工具。在引入Babel之后,开发者需要添加一些插件来使其支持React的语法,比如JSX转换插件。 在React的官方网站上,这些库文件的源代码和它们的压缩版可以进行手动下载。此外,React也提供了一些其他的安装方式,如使用npm包管理器或通过CDN引入等。无论使用哪种方式安装,开发者都需要确保使用React版本和其他库文件是兼容的,以避免可能出现的不兼容错误。 总之,React和其相关的库文件都是优秀的JavaScript工具,是构建高质量用户界面的不二选择。为此,开发者应当了解React和它们的使用、安装方式等方面的知识,以提升自身的开发效率和代码质量。