trtc-electron-sdk
Version:
trtc electron sdk
81 lines (80 loc) • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TRTCMediaMixingServiceEvent = void 0;
const events_1 = require("events");
const MediaMixingManager_1 = require("./MediaMixingManager");
/**
* @namespace TRTCMediaMixingServiceEvent
* @description 目前只支持 `Windows` 操作系统
*/
var TRTCMediaMixingServiceEvent;
(function (TRTCMediaMixingServiceEvent) {
/**
* @description 本地混流服务器连接丢失事件
*
* @event TRTCMediaMixingServiceEvent#onMediaMixingServerLost
*/
TRTCMediaMixingServiceEvent["onMediaMixingServerLost"] = "onMediaMixingServerLost";
})(TRTCMediaMixingServiceEvent = exports.TRTCMediaMixingServiceEvent || (exports.TRTCMediaMixingServiceEvent = {}));
/**
* 本地混流服务
*
* 目前只支持 `Windows` 操作系统
*/
class TRTCMediaMixingService {
constructor(mediaMixingManager) {
this.mediaMixingManager = mediaMixingManager;
this.eventEmitter = new events_1.EventEmitter();
this.mediaMixingManager.on(MediaMixingManager_1.TRTCMediaMixingEvent.onMediaMixingServerLost, () => {
this.eventEmitter.emit(TRTCMediaMixingServiceEvent.onMediaMixingServerLost);
});
}
/**
* 启动独立混流渲染进程
*
* 开发模式,默认路径:node_modules\\trtc-electron-sdk\\build\\Release\\liteav_media_server.exe
*
* 构建模式,默认路径:${resourcesPath}\\liteav_media_server.exe
*
* 如果用户应用有特殊配置,默认路径可能找不到服务进程程序,需要自行传入路径。
*
* @param path {string} - 服务进程程序路径,不传入参数时,SDK 内部按照默认路径启动服务进程。
*
* @returns {Promise<void>}
*/
startMediaMixingServer(path) {
return this.mediaMixingManager.startMediaMixingServer(path);
}
/**
* 关闭独立混流渲染进程
*
* @returns {Promise<void>}
*/
stopMediaMixingServer() {
return this.mediaMixingManager.stopMediaMixingServer();
}
destroy() {
this.eventEmitter.removeAllListeners();
}
/**
* 注册事件监听
*
* @param event {TRTCMediaMixingServiceEvent} - 事件名称
* @param func {Function} - 事件回调函数
*/
on(event, func) {
var _a;
(_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.on(event, func);
}
/**
* 取消事件监听
*
* @param event {TRTCMediaMixingServiceEvent} - 事件名
* @param func {Function} - 事件回调函数
*/
off(event, func) {
var _a;
(_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.off(event, func);
}
}
exports.default = TRTCMediaMixingService;