视频播放器

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 = () => {

_importedScriptsrc = true;

resolve();

}

headElement.appendChild(script);

script.src = src;

})

}

render() {

return (

<div className="wrap">

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

</div>

)

}

}

export default Player;

相关推荐
xiaofeichaichai6 小时前
Vue 响应式原理
前端·javascript·vue.js
提子拌饭1336 小时前
模态窗鸿蒙PC Electron框架实现技术详解 - 饮料含糖量应用案例分析
前端·javascript·华为·electron·前端框架·开源·鸿蒙
2501_942279257 小时前
音频转文本新方案让识别更准、整理更省事
音视频
光影少年7 小时前
react的Context 和 Redux 区别?
前端·javascript·react.js·前端框架
前端 贾公子7 小时前
uni-app工程化实战:基于vue-i18n和i18n-ally的国际化方案 (上)
前端·javascript·vue.js
甜味弥漫8 小时前
React 快速入门:从 JSX 到列表渲染
react.js·前端框架·node.js
vim怎么退出8 小时前
Dive into React——Diff 算法
前端·react.js·源码阅读
半个落月8 小时前
面试必问的 JS 原型链,我用 16 个示例给你彻底讲明白
javascript
丷丩8 小时前
12. 渲染:MapLibre GL JS 集成与多源瓦片联动
javascript·矢量瓦片·maplibre gl js·地图服务器
橘子星8 小时前
别再懵圈!JS 执行机制的 “千层套路” 全揭秘
前端·javascript