UNPKG

cloudhub-playback-sdk

Version:

CloudHubPlaybackSDK

110 lines (109 loc) 4.29 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const PlaybackPlayerController_1 = __importDefault(require("./controllers/PlaybackPlayerController")); const RecordController_1 = __importDefault(require("./controllers/RecordController")); const EngineController_1 = __importDefault(require("./controllers/EngineController")); const RoomController_1 = __importDefault(require("./controllers/RoomController")); const Logger_1 = __importDefault(require("./Logger")); const global_1 = __importDefault(require("./global")); const utils_1 = __importDefault(require("./helper/utils")); const event_1 = require("./helper/event"); Logger_1.default.info(`CloudHubPlayback sdk started version ${global_1.default.config.version}`); const engine = new EngineController_1.default(); const recordManager = new RecordController_1.default(); const player = new PlaybackPlayerController_1.default(recordManager); function initSDK(config = "{}") { config = utils_1.default.strToJson(config); const { recordRootUrl } = config; Logger_1.default.info(`initSDK config: `, config); if (!utils_1.default.verifyUrl(recordRootUrl)) { Logger_1.default.error('recordRootUrl not path'); return false; } //存储播放器配置为全局变量 global_1.default.config = Object.assign(global_1.default.config, config); global_1.default.isInitSDK = true; Logger_1.default.info('initSDK success'); listenInitPlay(); } function listenInitPlay() { let retryCount = 20; let speed = 500; let timer = setInterval(() => { retryCount--; if (retryCount <= 0) { Logger_1.default.warning('waiting to start... please run startPlay !'); } if (global_1.default.isInitSDK && global_1.default.isStartPlayer) { clearInterval(timer); initPlayer(); } }, speed); } function initPlayer() { // 请求内容 RoomController_1.default.getRoomContent().then((data) => { Logger_1.default.info('init room.join success'); // 初始化 record 管理器 recordManager.init().then(() => { Logger_1.default.info('init record.json success'); // 通知播放器播放准备就绪 window.CloudHubPlayer.playerReady(); // 开始播放 player.start(); event_1.EventOuter.trigger('startPlay', data); event_1.EventInner.trigger('onDocAddr', { address: [global_1.default.config.docAddr], channelId: RoomController_1.default.serial }); // 发送开始播放事件 window.CloudHubPlayer.playStarted(); }).catch(error => { Logger_1.default.error(error); window.CloudHubPlayer.playFailed(error); }); }).catch((error) => { Logger_1.default.error(error); window.CloudHubPlayer.playFailed(error); }); } function startPlay(onCallback) { Logger_1.default.info(`startPlay`); if (utils_1.default.isFunction(onCallback)) { event_1.EventOuter.on('startPlay', onCallback); } global_1.default.isStartPlayer = true; } function getEngine() { Logger_1.default.info('getEngine'); return engine; } function getChannelId() { Logger_1.default.info(`getChannelId channel:${RoomController_1.default.serial}`); return RoomController_1.default.serial || ''; } function seekRecordPosition(position) { Logger_1.default.info(`seekRecordPosition position:${position}`); player.setTimeDifference(position); } function sendError(message) { window.CloudHubPlayer.sendError(message); } const CloudHubPlayback = { sdkInfo: utils_1.default.deepCopy(Object.assign(global_1.default.config, (window.CloudHubPlayer ? window.CloudHubPlayer.options : {}))), getEngine, startPlay, getChannelId, seekRecordPosition, sendError, }; // 对外给播放器的api window._CloudHubPlayback = { initSDK }; // 暴露给广生 window.CloudHubPlayback = Object.assign({ rtcEngine: engine, logger: Logger_1.default }, CloudHubPlayback); exports.default = CloudHubPlayback;