UNPKG

avs-sdk

Version:

音视频服务前端sdk

89 lines (85 loc) 2.59 kB
require('./video.min.css') import videojs1 from './video.min.js' import { Base64 } from './base64.js' var videojs = videojs1 var playerDom var CreatePlayer = (id, options, callback) => { var obj = {} for (var key in options) { if (key !== 'controlBar' && key !== 'sources') { obj[key] = options[key] } else if (key === 'controlBar') { var obj1 = {} var controlObj = options[key] for (var k in controlObj) { if (k !== 'volumePanel') { obj1[k] = controlObj[k] } else { if (controlObj[k] === 'vertical') { obj1[k] = { inline: false, CurrentTimeDisplay: true } } } } obj[key] = obj1 } else if (key === 'sources') { var arr = [] obj[key] = arr var obj2 = {} var sourcesObj = options[key][0] for (var keyVal in sourcesObj) { if (keyVal === 'src') { if (options.srcISencryption) { obj2[keyVal] = decodeFunc(sourcesObj[keyVal]) // 解密 } else { obj2[keyVal] = sourcesObj[keyVal] } } else { obj2[keyVal] = sourcesObj[keyVal] } } obj[key] = [obj2] } } var player = videojs(id, obj, callback) playerDom = player return player } function decodeFunc (str) { var num = str.indexOf('.m3u8') if (num >= 0) { var arr = str.split('/live/') var arr1 = arr[0].split('//') var replace1 = arr1[1] var arr2 = arr[1].split('/') var replace2 = arr2[0] var decode1 = str.replace(replace1, Base64.decode(replace1)) var m3u8DecodeStr = decode1.replace(replace2, Base64.decode(replace2)) console.log(m3u8DecodeStr) return m3u8DecodeStr } else { var arr3 = str.split('//') var arr4 = arr3[1].split('/') var replace3 = arr4[1] var mp4DecodeStr = str.replace(replace3, Base64.decode(replace3)) return mp4DecodeStr } } var AddControlButton = (hoverText, className, insertPlace, callback) => { var btn1 = videojs.getComponent('Button') var danmakuBtn = videojs.extend(btn1, { constructor: function () { btn1.apply(this, arguments) this.controlText(hoverText) }, buildCSSClass: function () { return className + ' vjs-control vjs-button' }, handleClick: callback }) videojs.registerComponent('danBtn', danmakuBtn) playerDom.getChild('controlBar').addChild('danBtn', {}, insertPlace) } export {CreatePlayer, AddControlButton}