UNPKG

cloudhub-electron-sdk

Version:

cloudhub-electron-sdk

649 lines (648 loc) 26.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const event_1 = require("../helpers/event"); const BaseEngineController_1 = __importDefault(require("./BaseEngineController")); const log_1 = __importDefault(require("../helpers/log")); const utils_1 = __importDefault(require("../helpers/utils")); const ChannelController_1 = __importDefault(require("../rtcChannel/ChannelController")); require("./listeners/EventListener"); const Stream_1 = __importDefault(require("./Stream")); const Room_1 = __importDefault(require("./Room")); class EngineController extends BaseEngineController_1.default { initialize(appId, config) { log_1.default.info(`init appId:${appId} config:${utils_1.default.jsonToStr(config)}`); this._initialize(appId, config); this.engine.enableAudio(); } renewToken(token) { log_1.default.info(`renewToken token:${token}`); this.engine.renewToken(token); } setClientRole(role) { log_1.default.info(`setClientRole role:${role}`); this.engine.setClientRole(role); } setChannelProfile(profile) { log_1.default.info(`setChannelProfile profile:${profile}`); this.engine.setChannelProfile(profile); } setAddonLogFile(fullpath) { log_1.default.info(`setAddonLogFile fullpath:${fullpath}`); this.engine.setAddonLogFile(fullpath); } setLogFile(fullpath) { log_1.default.info(`setLogFile fullpath:${fullpath}`); this.engine.setLogFile(fullpath); } joinChannel(token, channelId, info, uid, channelMediaOptions) { log_1.default.info(`joinChannel token:${token} channelId:${channelId} info:${utils_1.default.jsonToStr(info)} uid:${uid} channelMediaOptions:${channelMediaOptions}`); if (!channelId) { return; } this.engine.joinChannel(token, channelId, utils_1.default.jsonToStr(info), uid, channelMediaOptions); } leaveChannel() { log_1.default.info('leaveChannel'); this.engine.leaveChannel(); } release() { log_1.default.info('release方法'); this.engine.release(); } publish(options) { const { deviceId = '', streamInfo = {} } = options || {}; log_1.default.info(`publish, deviceId: ${deviceId}, streamInfo:`, streamInfo); if (streamInfo && utils_1.default.isObject(streamInfo)) { this.engine.setPublishStreamInfo(JSON.stringify(streamInfo), deviceId); } this.engine.publish(deviceId); } unPublish(options) { const { deviceId = '' } = options || {}; log_1.default.info(`unPublish, deviceId: ${deviceId}`); this.engine.unPublish(deviceId); } enableLocalVideo(enable, options) { const { deviceId = '' } = options || {}; log_1.default.info(`enableLocalVideo, enable:${enable}, deviceId: ${deviceId}`); this.engine.enableLocalVideo(enable, deviceId); } enableLocalAudio(enable) { log_1.default.info(`enableLocalAudio enable:${enable}`); this.engine.enableLocalAudio(enable); } enableVideo() { log_1.default.info('enableVideo'); this.engine.enableVideo(); } enableMultiStream(enable) { log_1.default.info(`enableMultiStream enable:${enable}`); this.engine.enableMultiStream(enable); } disableVideo() { log_1.default.info('disableVideo'); this.engine.disableVideo(); } muteLocalVideoStream(mute, options) { const { deviceId = '' } = options || {}; log_1.default.info(`muteLocalVideoStream,mute:${mute}, deviceId:${deviceId}`); this.engine.muteLocalVideoStream(mute, deviceId); } muteLocalAudioStream(mute) { log_1.default.info(`muteLocalAudioStream mute:${mute}`); this.engine.muteLocalAudioStream(mute); } muteRemoteVideoStream(streamId, mute) { log_1.default.info(`muteRemoteVideoStream streamId:${streamId} mute:${mute}`); this.engine.muteRemoteVideoByStream(streamId, mute); } muteRemoteAudioStream(uid, mute) { log_1.default.info(`muteRemoteAudioStream uid:${uid} mute:${mute}`); this.engine.muteRemoteAudioStream(uid, mute); } muteAllRemoteVideoStreams(mute) { log_1.default.info(`muteAllRemoteVideoStreams mute:${mute}`); this.engine.muteAllRemoteVideoStreams(mute); } muteAllRemoteAudioStreams(mute) { log_1.default.info(`muteAllRemoteAudioStreams mute:${mute}`); this.engine.muteAllRemoteAudioStreams(mute); } getVideoDevices() { log_1.default.info('getVideoDevices'); return this.engine.getVideoDevices(); } getAudioRecordingDevices() { log_1.default.info('getAudioRecordingDevices'); return this.engine.getAudioRecordingDevices(); } getAudioPlaybackDevices() { log_1.default.info('getAudioPlaybackDevices'); return this.engine.getAudioPlaybackDevices(); } getCurrentVideoDevice() { log_1.default.info('getCurrentVideoDevice'); return this.engine.getCurrentVideoDevice(); } getCurrentAudioRecordingDevice() { log_1.default.info('getCurrentAudioRecordingDevice'); return this.engine.getCurrentAudioRecordingDevice(); } getCurrentAudioPlaybackDevice() { log_1.default.info('getCurrentAudioPlaybackDevice'); return this.engine.getCurrentAudioPlaybackDevice(); } setVideoDevice(deviceId) { log_1.default.info('setVideoDevice', deviceId); if (!deviceId) return; this.engine.setVideoDevice(deviceId); } setAudioRecordingDevice(deviceId) { log_1.default.info('setAudioRecordingDevice', deviceId); if (!deviceId) return; this.engine.setAudioRecordingDevice(deviceId); } setAudioPlaybackDevice(deviceId) { log_1.default.info('setAudioPlaybackDevice', deviceId); if (!deviceId) return; this.engine.setAudioPlaybackDevice(deviceId); } followSystemRecordingDevice(flag) { log_1.default.info('followSystemRecordingDevice', flag); return this.engine.followSystemRecordingDevice(flag); } followSystemPlaybackDevice(flag) { log_1.default.info('followSystemPlaybackDevice', flag); return this.engine.followSystemPlaybackDevice(flag); } setupLocalVideo(view, options) { if (!view.id) { return -1; } ; let { deviceId = '' } = options || {}; if (!deviceId) { const currentVideoDevice = this.engine.getCurrentVideoDevice() || {}; deviceId = currentVideoDevice.deviceid; } if (!deviceId) { return -1; } return this._setupLocalVideo(view, deviceId, view.id); } setupLocalMovie(view, movieUrl) { log_1.default.info(`setupLocalMovie view:${view} movieUrl:${movieUrl}`); this._setupLocalVideo(view, movieUrl, movieUrl, 'movie', false); } setupRemoteVideo(uid, streamId, view) { log_1.default.info('setupRemoteVideo', uid, streamId, view); this._setupRemoteVideo(uid, streamId, view); } removeLocalVideo(view, options) { if (!view.id) return; let { deviceId = '' } = options || {}; if (!deviceId) { const currentVideoDevice = this.engine.getCurrentVideoDevice() || {}; deviceId = currentVideoDevice.deviceid; } this._removeLocalVideo(deviceId, view.id); } removeLocalMovie(movieUrl) { log_1.default.info(`removeLocalMovie movieUrl:${movieUrl}`); this._removeLocalVideo(movieUrl, movieUrl); } removeRemoteVideo(uid, streamId) { log_1.default.info(`removeRemoteVideo uid:${uid} type:${streamId}`); this._removeRemoteVideo(uid, streamId); } getMovieDuration(mediaFile) { log_1.default.info(`getMovieDuration mediaFile:${mediaFile}`); return this.engine.getMovieDuration(mediaFile); } setLocalVideoMirror(mirror, options) { const { viewId = '' } = options || {}; log_1.default.info(`setLocalVideoMirror, mirror:${mirror}, viewId: ${viewId}`); if (viewId) { const stream = Stream_1.default.getStreamByViewId(viewId); if (stream) { stream.renderer.setMirror(mirror); } } else { const streams = Stream_1.default.getLocalStreams(); streams.forEach((stream) => { stream.renderer.setMirror(mirror); }); } } setVideoMode(viewId, mode) { log_1.default.info(`setVideoMode, viewId:${viewId} mode:${mode}`); this._setVideoMode(viewId, mode); } playAVFileFromLibrary(url, attr) { log_1.default.info('playAVFileFromLibrary', url, utils_1.default.jsonToStr(attr)); if (!url) return; this.engine.playAVFileFromLibrary(url, utils_1.default.jsonToStr(attr)); } unplayAVFileFromLibrary(url) { log_1.default.info('unplayAVFileFromLibrary', url); if (!url) return; this.engine.unplayAVFileFromLibrary(url); } pauseAVFileFromLibrary(url, isPause) { log_1.default.info('pauseAVFileFromLibrary', url, isPause); if (!url) return; this.engine.pauseAVFileFromLibrary(url, isPause); } seekAVFileFromLibrary(url, position) { log_1.default.info('seekAVFileFromLibrary', url, position); if (!url) return; this.engine.seekAVFileFromLibrary(url, position); } startPlayMovie(mediaFile, loopback, cycle, paused = false) { log_1.default.info('startPlayMovie', mediaFile, loopback, cycle, paused); if (!mediaFile) return; this.engine.startPlayMovie(mediaFile, loopback, cycle, paused); } stopPlayMovie(mediaFile) { log_1.default.info('stopPlayMovie', mediaFile); if (!mediaFile) return; this.engine.stopPlayMovie(mediaFile); } setMoviePosition(mediaFile, pos) { log_1.default.info('setMoviePosition', mediaFile, pos); if (!mediaFile) return; this.engine.setMoviePosition(mediaFile, utils_1.default.strToNum(pos)); } pausePlayMovie(mediaFile) { log_1.default.info('pausePlayMovie', mediaFile); if (!mediaFile) return; this.engine.pausePlayMovie(mediaFile); } resumePlayMovie(mediaFile) { log_1.default.info('resumePlayMovie', mediaFile); if (!mediaFile) return; this.engine.resumePlayMovie(mediaFile); } getMovieCurrentPosition(mediaFile) { log_1.default.info('getMovieCurrentPosition', mediaFile); if (!mediaFile) return false; return this.engine.getMovieCurrentPosition(mediaFile); } getMovieInfo(mediaFile) { log_1.default.info('getMovieInfo', mediaFile); if (!mediaFile) return false; return this.engine.getMovieInfo(mediaFile); } evictUser(uid, reason) { log_1.default.info('evictUser', uid, reason); this.engine.evictUser(uid, reason); } startVideoDeviceTest(deviceId, view, onCallback) { log_1.default.info(`startVideoDeviceTest deviceId:${deviceId} view:${view}`); if (deviceId) { this.setVideoDevice(deviceId); } this._startVideoDeviceTest(view, deviceId, onCallback); } stopVideoDeviceTest(deviceId) { log_1.default.info(`stopVideoDeviceTest, deviceId:${deviceId}`); const videoTest = document.getElementById("cloudhub-video-device-test"); if (videoTest && deviceId) { this._removeLocalVideo(deviceId, videoTest.id); const viewParent = videoTest.parentNode; viewParent.removeChild(videoTest); } } enableAudioVolumeIndication(interval, smooth = 3, reportVad = false) { log_1.default.info(`enableAudioVolumeIndication interval:${interval}, smooth:${smooth}, reportVad:${reportVad}`); this.engine.enableAudioVolumeIndication(interval, smooth, reportVad); } startAudioPlaybackDeviceTest(deviceId, filepath, options = { loop: true }) { log_1.default.info(`startAudioPlaybackDeviceTest deviceId:${deviceId} filepath:${filepath} options:${options}`); if (deviceId) { this.setAudioPlaybackDevice(deviceId); } if (!filepath) { return; } this.engine.startAudioPlaybackDeviceTest(deviceId, filepath, options.loop); } stopAudioPlaybackDeviceTest() { log_1.default.info(`stopAudioPlaybackDeviceTest`); this.engine.stopAudioPlaybackDeviceTest(); } startAudioRecordingDeviceTest(deviceId, interval = 200) { log_1.default.info(`startAudioRecordingDeviceTest deviceId:${deviceId} interval:${interval}`); if (deviceId) { this.setAudioRecordingDevice(deviceId); } this.engine.startAudioRecordingDeviceTest(interval); } stopAudioRecordingDeviceTest() { log_1.default.info(`stopAudioRecordingDeviceTest`); this.engine.stopAudioRecordingDeviceTest(); } getVersion() { log_1.default.info('getVersion'); return this.engine.getVersion(); } on(event, callback, markId) { event_1.EventInner.on(event, callback, markId); } off(event, callback) { event_1.EventInner.off(event, callback); } offAll(event) { event_1.EventInner.offAll(event); } offAllByMarkId(markId) { event_1.EventInner.offAllByMarkId(markId); } trigger(event, data) { event_1.EventInner.trigger(event, data); } sendChatMsg(toId, message, extraData) { log_1.default.info('sendChatMsg', toId, message, utils_1.default.jsonToStr(extraData)); if (!message) return; this.engine.sendChatMsg(toId, message, utils_1.default.jsonToStr(extraData)); } setProperty(uid, toId, prop) { log_1.default.info('setProperty', uid, toId, utils_1.default.jsonToStr(prop)); if (!uid) return; this.engine.setProperty(uid, toId, utils_1.default.jsonToStr(prop)); } pubMsg(msgName, msgId, toId, data = {}, associatedUserId, associatedMsgId, bSave, extraInfo) { log_1.default.info('pubMsg', msgName, msgId, toId, data, associatedUserId, associatedMsgId, bSave, extraInfo); this.engine.pubMsg(msgName, msgId, toId, utils_1.default.jsonToStr(data), associatedUserId, associatedMsgId, bSave, utils_1.default.jsonToStr(extraInfo)); } delMsg(msgName, msgId, toId, data) { log_1.default.info('delMsg', msgName, msgId, toId, utils_1.default.jsonToStr(data)); this.engine.delMsg(msgName, msgId, toId, utils_1.default.jsonToStr(data)); } setVideoEncoderConfiguration(config) { log_1.default.info('setVideoEncoderConfiguration', config); if (!config) return; const { deviceId = '' } = config; this.engine.setVideoEncoderConfiguration(config, deviceId); } getScreenWindowsInfo() { log_1.default.info(`getScreenWindowsInfo`); return this.engine.getScreenWindowsInfo(); } getScreenDisplaysInfo() { log_1.default.info(`getScreenDisplaysInfo`); return this.engine.getScreenDisplaysInfo(); } startScreenCaptureByDisplayId(displayId, excludeWindow, framerate, bitrate, isCaptureCursor, isDesktopSound = false) { log_1.default.info('startScreenCaptureByDisplayId', displayId, excludeWindow, framerate, bitrate, isCaptureCursor, isDesktopSound); this.engine.startScreenCaptureByDisplayId(displayId, excludeWindow, framerate, bitrate, isCaptureCursor, isDesktopSound); } startScreenCaptureByWindowId(windowId, excludeWindow = 0, framerate = 5, bitrate = 1200, isCaptureCursor = false) { log_1.default.info('startScreenCaptureByWindowId', windowId, excludeWindow, framerate, bitrate, isCaptureCursor); return this.engine.startScreenCaptureByWindowId(windowId, excludeWindow, framerate, bitrate, isCaptureCursor); } startSpeakerCaptureWhileSharing() { log_1.default.info(`startSpeakerCaptureWhileSharing`); return this.engine.startSpeakerCaptureWhileSharing(); } stopSpeakerCaptureWhileSharing() { log_1.default.info(`stopSpeakerCaptureWhileSharing`); return this.engine.stopSpeakerCaptureWhileSharing(); } setCameraFlip(horiz, deviceId = '') { log_1.default.info(`setCameraFlip`); return this.engine.setCameraFlip(horiz, false, deviceId); } startRecordingVoiceClip(baseName, duration) { log_1.default.info(`startRecordingVoiceClip`); return this.engine.startRecordingVoiceClip(baseName, duration); } stopRecordingVoiceClip(baseName) { log_1.default.info(`stopRecordingVoiceClip`); return this.engine.stopRecordingVoiceClip(baseName); } stopScreenCapture() { log_1.default.info(`stopScreenCapture`); this.engine.stopScreenCapture(); } startServerRecord() { log_1.default.info(`startServerRecord`); this.engine.startServerRecord(); } stopServerRecord() { log_1.default.info(`stopServerRecord`); this.engine.stopServerRecord(); } pauseServerRecord() { log_1.default.info(`pauseServerRecord`); this.engine.pauseServerRecord(); } resumeServerRecord() { log_1.default.info(`resumeServerRecord`); this.engine.resumeServerRecord(); } getEffectsVolume() { log_1.default.info(`getEffectsVolume`); return this.engine.getEffectsVolume(); } setEffectsVolume(volume) { log_1.default.info(`setEffectsVolume`); return this.engine.setEffectsVolume(volume); } setVolumeOfEffect(soundId, volume) { log_1.default.info(`setVolumeOfEffect`); return this.engine.setVolumeOfEffect(soundId, volume); } playEffect(soundId, filePath, loopcount, gain, publish, startTimeMS, endTimeMS) { log_1.default.info(`playEffect`); return this.engine.playEffect(soundId, filePath, loopcount, gain, publish, startTimeMS, endTimeMS); } stopEffect(soundId) { log_1.default.info(`stopEffect`); return this.engine.stopEffect(soundId); } stopAllEffects() { log_1.default.info(`stopAllEffects`); return this.engine.stopAllEffects(); } pauseEffect(soundId) { log_1.default.info(`pauseEffect`); return this.engine.pauseEffect(soundId); } pauseAllEffects() { log_1.default.info(`pauseAllEffects`); return this.engine.pauseAllEffects(); } resumeEffect(soundId) { log_1.default.info(`resumeEffect`); return this.engine.resumeEffect(soundId); } resumeAllEffects() { log_1.default.info(`resumeAllEffects`); return this.engine.resumeAllEffects(); } preloadEffect(soundId, filePath) { log_1.default.info(`preloadEffect`); return this.engine.preloadEffect(soundId, filePath); } unloadEffect(soundId) { log_1.default.info(`unloadloadEffect`); return this.engine.unloadEffect(soundId); } setAudioQuality(quality) { log_1.default.info(`setAudioQuality, volume:${quality}`); return this.engine.setAudioQuality(Number(quality)); } addPublishStreamUrl(url, transcodingEnabled) { log_1.default.info(`addPublishStreamUrl`); return this.engine.addPublishStreamUrl(url, transcodingEnabled); } removePublishStreamUrl(url) { log_1.default.info(`removePublishStreamUrl`); return this.engine.removePublishStreamUrl(url); } setLiveTranscoding(transcoding) { log_1.default.info(`setLiveTranscoding, ${transcoding}`); transcoding.transcodingStreams = transcoding.transcodingStreams.map((it) => { if (it.type === 'video') { it.sourceID = 'default_source_id'; } else if (it.type === 'screen ') { it.sourceID = 'screen'; } else if (it.type === 'file') { it.sourceID = utils_1.default.getHash(it.sourceID); } return it; }); return this.engine.setLiveTranscoding(JSON.stringify(transcoding)); } startLastmileProbeTest(config) { log_1.default.info(`startLastmileProbeTest`); return this.engine.startLastmileProbeTest(config); } stopLastmileProbeTest() { log_1.default.info(`stopLastmileProbeTest`); return this.engine.stopLastmileProbeTest(); } startChannelMediaRelay(config) { log_1.default.info(`startChannelMediaRelay`, config); return this.engine.startChannelMediaRelay(JSON.stringify(config)); } updateChannelMediaRelay(config) { log_1.default.info(`updateChannelMediaRelay`); return this.engine.updateChannelMediaRelay(JSON.stringify(config)); } stopChannelMediaRelay() { log_1.default.info(`stopChannelMediaRelay`); return this.engine.stopChannelMediaRelay(); } sendBuriedPointEvent(data) { log_1.default.info(`sendBuriedPointEvent`); return this.engine.eventReport(JSON.stringify(data)); } setBeautyEffectOptions(enable, options, deviceId = '') { log_1.default.info(`setBeautyEffectOptions`); return this.engine.setBeautyEffectOptions(enable, options, deviceId); } setVideoEffectOptions(enable, options, deviceId = '') { log_1.default.info(`setVideoEffectOptions,enable:${enable}`, 'options:', options, `deviceId:${deviceId}`); return this.engine.setVideoEffectOptions(enable, options, deviceId); } createChannel(channelId) { log_1.default.info(`createChannel`); const channel = this.engine.createChannel(channelId); if (channel < 0) { return null; } channel.cid = channelId; const rtcChannel = new ChannelController_1.default(channel); if (!Room_1.default.getRtcChannels()[channelId]) { Room_1.default.setRtcChannels(channelId, rtcChannel); } return rtcChannel; } setRemoteVideoStreamType(uid, streamType) { log_1.default.info(`setRemoteVideoStreamType, uid:${uid},streamType:${streamType}`); return this.engine.setRemoteVideoStreamType(uid, streamType); } setRemoteDefaultVideoStreamType(type) { log_1.default.info(`setRemoteDefaultVideoStreamType`); return this.engine.setRemoteDefaultVideoStreamType(type); } enableDualStreamMode(isOpen) { log_1.default.info(`enableDualStreamMode, isOpen:`, isOpen); return this.engine.enableDualStreamMode(isOpen); } setAudioPlaybackDeviceMute(mute) { log_1.default.info(`setAudioPlaybackDeviceMute, mute:${mute}`); return this.engine.setAudioPlaybackDeviceMute(mute); } getAudioPlaybackDeviceMute() { return this.engine.getAudioPlaybackDeviceMute(); } setAudioPlaybackVolume(volume) { log_1.default.info(`setAudioPlaybackVolume, volume:${volume}`); return this.engine.setAudioPlaybackVolume(Number(volume)); } getAudioPlaybackVolume() { return this.engine.getAudioPlaybackVolume(); } adjustPlaybackSignalVolume(volume) { log_1.default.info(`adjustPlaybackSignalVolume, volume:${volume}`); return this.engine.adjustPlaybackSignalVolume(Number(volume)); } setAudioRecordingDeviceMute(mute) { log_1.default.info(`setAudioRecordingDeviceMute, mute:${mute}`); return this.engine.setAudioRecordingDeviceMute(mute); } getAudioRecordingDeviceMute() { return this.engine.getAudioRecordingDeviceMute(); } setAudioRecordingVolume(volume) { log_1.default.info(`setAudioRecordingVolume, volume:${volume}`); return this.engine.setAudioRecordingVolume(Number(volume)); } getAudioRecordingVolume() { return this.engine.getAudioRecordingVolume(); } adjustRecordingSignalVolume(volume) { log_1.default.info(`adjustRecordingSignalVolume, volume:${volume}`); return this.engine.adjustRecordingSignalVolume(Number(volume)); } adjustUserPlaybackSignalVolume(uid, volume) { log_1.default.info(`adjustUserPlaybackSignalVolume, uid:${uid} volume:${volume}`); return this.engine.adjustUserPlaybackSignalVolume(uid, Number(volume)); } startAudioDeviceLoopbackTest(indicationInterval = 200) { log_1.default.info(`startAudioDeviceLoopbackTest, Interval:${indicationInterval}`); this.engine.startAudioDeviceLoopbackTest(indicationInterval); } stopAudioDeviceLoopbackTest() { log_1.default.info(`stopAudioDeviceLoopbackTest`); this.engine.stopAudioDeviceLoopbackTest(); } setLocalVoicePitch(pitch) { log_1.default.info(`setLocalVoicePitch:${pitch}`); return this.engine.setLocalVoicePitch(pitch); } setLocalVoiceEqualization(bandFrequency, bandGain) { log_1.default.info(`setLocalVoiceEqualization:${bandFrequency} ${bandGain}`); return this.engine.setLocalVoiceEqualization(bandFrequency, bandGain); } setLocalVoiceReverb(reverbType, value) { log_1.default.info(`setLocalVoiceReverb:${reverbType} ${value}`); return this.engine.setLocalVoiceReverb(reverbType, value); } setAudioEffectPreset(preset) { log_1.default.info(`setAudioEffectPreset:${preset}`); return this.engine.setAudioEffectPreset(preset); } enableDeepLearningDenoise(enable) { log_1.default.info(`enableDeepLearningDenoise:${enable}`); this.engine.enableDeepLearningDenoise(enable); } } exports.default = EngineController;