视频播放器

import React from 'react';

class Player extends React.Component {

constructor(props) {

super(props);

}

componentDidMount() {

if(!window.polyvLivePlayer){

this.loadScript('https://player.polyv.net/resp/live-h5-player/latest/liveplayer.min.js')

.then(() =>{

this.loadPlayer();

});

}

}

componentWillUnmount() {

if(this.player){

this.player.destroy();

}

}

loadPlayer() {

this.player = window.polyvLivePlayer({

wrap: '.player',

width: '100%',

height: '100%',

uid: 'uid',

vid: 'vid',

});

}

loadScript(src) {

const headElement = document.head || document.getElementsByTagName('head')[0];

const _importedScript = {};

return new Promise((resolve, reject) => {

if (src in _importedScript) {

resolve();

return;

}

const script = document.createElement('script');

script.type = 'text/javascript';

script.onerror = err => {

headElement.removeChild(script);

reject(new URIError(`The Script ${src} is no accessible.`));

}

script.onload = () => {

_importedScript[src] = true;

resolve();

}

headElement.appendChild(script);

script.src = src;

})

}

render() {

return (

<div className="wrap">

<div className="player"></div>

</div>

)

}

}

export default Player;

相关推荐
wuhen_n1 天前
案例分析:大屏可视化项目的卡顿排查与解决
前端·javascript·vue.js
张元清1 天前
Pareto 3.0 发布:基于 Vite 7 的轻量级 React SSR 框架
前端·react.js
社恐的下水道蟑螂1 天前
WebSocket 从入门到生产落地:原理拆解 + 聊天室全实战,搞定前端实时通信
前端·javascript·websocket
小时前端1 天前
react状态管理:踩坑无数后,我为什么选择了 Zustand?
前端·react.js
zhenxin01221 天前
SpringMVC 请求参数接收
前端·javascript·算法
没有蛀牙lm1 天前
windows下快速安装android studio(预估30min)
开发语言·javascript·webpack
wuhen_n1 天前
案例分析:一个复杂表单的响应式性能优化
前端·javascript·vue.js
优选资源分享1 天前
抖音音频提取工具 v1.0 - 快速提取抖音视频音频
音视频
Amumu121381 天前
Js: ES新特性(二)
前端·javascript·ecmascript
Dxy12393102161 天前
前端函数设计指南:从 HTML 中的 JavaScript 函数到模块化实践
前端·javascript·html