react中播放多个rtmp流视频

1,安装依赖

yarn add video.js
yarn add videojs-flash //新版本的video.js需要单独安装videojs-flash

2,封装Video.js

import React from "react";
import "video.js/dist/video-js.css";
import "videojs-flash";
import videojs from "video.js";
class Video extends React.Component {
  state = {
    nowPlay: "",
  };
  //组件挂载完成之后初始化播放控件
  componentDidMount() {
    const videoJsOptions = {
      autoplay: true,
      controls: true,
      sources: [
        {
          src:this.props.url,
          type: "rtmp/flv",
        },
      ],
    };
    this.player = videojs("my-video"+this.props.index, videoJsOptions, function onPlayerReady() {
      //(id或者refs获取节点,options,回调函数)
      videojs.log("Your player is ready!");
      // In this context, `this` is the player that was created by Video.js.
      this.play();
      // How about an event listener?
      this.on("ended", function () {
        videojs.log("Awww...over so soon?!");
      });
    });
  }

  render() {
    return (
      <div className="main-wrap">
        <video
          style={{ width: "220px", height: "120px" }}
          id={"my-video"+this.props.index}
          className="video-js vjs-default-skin"
        ></video>
      </div>
    );
  }
}

export default Videos;

3,使用

import Video from '../components/video/Video';

this.state = {
    videoDevices:[
		{
        	playRtmp:"rtmp://58.200.131.2:1935/livetv/hunantv",
        	name:"湖南卫视"
    	},
    	{
        	playRtmp:"rtmp://202.69.69.180:443/webcast/bshdlive-pc",
        	name:"香港财经"
    	}
	]//视频
};
{
    this.state.videoDevices.map((item, index) =>
        <li key={index}>
            <p>{item.name}</p>
            <Video index={index} url={item.playRtmp} />
        </li>
    )
}

详细配置:video.jsvideojs-flash

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
React使用高德地图弹框播放视频,你可以按照以下步骤进行操作: 1. 首先,安装高德地图的 JavaScript API SDK。可以通过CDN引入或者使用npm安装。例如,通过CDN引入可以在你的index.html文件添加以下代码: ```html <script src="https://webapi.amap.com/maps?v=1.4.15&key=your-api-key"></script> ``` 2. 创建一个React组件,用于显示地图和弹框。你可以使用函数组件或者类组件。以下是一个使用函数组件的示例: ```jsx import React, { useEffect } from 'react'; const MapWithVideoModal = () => { useEffect(() => { // 在组件挂载后初始化地图 const map = new window.AMap.Map('mapContainer', { zoom: 13, }); // 创建弹框 const infoWindow = new window.AMap.InfoWindow({ isCustom: true, // 使用自定义窗体 content: '<div id="videoPlayer"></div>', // 弹框内容为一个div,用于放置视频播放器 }); // 在地图上添加点击事件,点击后显示弹框 map.on('click', function (e) { infoWindow.open(map, e.lnglat); }); // 在弹框创建视频播放器 const videoPlayer = new window.AMap.VideoPlayer({ container: 'videoPlayer', // 视频播放器的容器 autoplay: true, // 自动播放 width: 400, // 播放器宽度 height: 300, // 播放器高度 source: 'http://example.com/video.mp4', // 视频地址 }); return () => { // 组件卸载时销毁地图和视频播放器 map.destroy(); videoPlayer.destroy(); }; }, []); return <div id="mapContainer" style={{ width: '100%', height: '400px' }}></div>; }; export default MapWithVideoModal; ``` 3. 在你的应用使用这个组件。例如,可以在App.js引入并使用: ```jsx import React from 'react'; import MapWithVideoModal from './MapWithVideoModal'; const App = () => { return ( <div> <h1>React高德地图弹框播放视频示例</h1> <MapWithVideoModal /> </div> ); }; export default App; ``` 请根据你的实际需求修改代码的API密钥、视频地址和其他相关参数。这个示例使用了高德地图的JavaScript API SDK和高德地图的视频播放器组件来实现在地图弹框播放视频
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值