UNPKG

chimee-player

Version:
57 lines (48 loc) 1.8 kB
import Chimee from 'chimee'; import {isObject, isArray} from 'chimee-helper'; import chimeeControl from 'chimee-plugin-controlbar'; import popupFactory from 'chimee-plugin-popup'; import chimeeContextmenu from 'chimee-plugin-contextmenu'; import chimeeLog from 'chimee-plugin-log'; import chimeeCenterState from 'chimee-plugin-center-state'; import chimeeKernelHls from 'chimee-kernel-hls'; import chimeeKernelFlv from 'chimee-kernel-flv'; import './index.css'; //import 'babel-polyfill'; Chimee.install(chimeeControl); Chimee.install(chimeeCenterState); Chimee.install(chimeeContextmenu); Chimee.install(chimeeLog); class ChimeePlayer extends Chimee { constructor (config) { if(!isObject(config)) throw new TypeError('You must pass an Object as config when you new ChimeePlayer'); // 添加UI插件 config.plugin = config.plugin || config.plugins; if(!isArray(config.plugin)) config.plugin = []; const innerPlugins = [ chimeeControl.name, chimeeCenterState.name, chimeeContextmenu.name, chimeeLog.name ]; const configPluginNames = config.plugin.map(item => isObject(item) ? item.name : item); innerPlugins.forEach(name => { if(configPluginNames.indexOf(name) > -1) return; config.plugin.push(name); }); // 添加解码器 if(!isObject(config.preset)) { config.preset = { hls: chimeeKernelHls, flv: chimeeKernelFlv }; } super(config); // 右键菜单的播放暂停 this.on('play', () => this.chimeeContextmenu.updatemenu([{text: '暂停', action: 'pause'}])); this.on('pause', () => this.chimeeContextmenu.updatemenu([{text: '播放', action: 'play'}])); } } // 暴露浮层工厂方法 ChimeePlayer.popupFactory = popupFactory; export default ChimeePlayer;