UNPKG

trtc-electron-sdk

Version:

trtc electron sdk

366 lines (365 loc) 13.8 kB
import { V2LiveRotation, V2LiveFillMode, V2LiveAudioQuality, V2LiveVideoEncoderParam, V2LiveMirrorType, V2LiveMode, V2LivePusherEvent, V2TXLiveTranscodingConfig } from '../live_define'; import { TRTCCameraCaptureParams } from '../../trtc_define'; import { TRTCDeviceInfo, TRTCDeviceType } from '../../trtc_define'; /** * 腾讯云直播推流器 * * @example * * // 创建/销毁 V2LivePusher 对象,以及回调事件监听。 * * import { V2LivePusher } from 'trtc-electron-sdk'; * const livePusher = V2LivePusher.createV2LivePusher(V2LiveMode.V2LiveModeRTMP); * * subscribeEvents = (livePusher) => { * livePusher.on('onError', (errcode, errmsg) => { * console.info('livePusher_demo: onError :' + errcode + " msg" + errmsg); * }); * }; * * V2LivePusher.releaseV2LivePusher(livePusher); * */ export declare class V2LivePusher { private livePusher; private deviceManager; private pusherVideoRender; private cameraTestVideoRender; private pixelFormat; private eventEmitter; private logger; /** * 创建 V2LivePusher 实例 * * @param {V2LiveMode} mode - 推流模式,参考 V2LiveMode 的定义。 * @return {V2LivePusher} - 推流器实例 */ static createV2LivePusher(mode: V2LiveMode): V2LivePusher; /** * 析构 V2LivePusher 对象 * * @param {V2LivePusher} v2livepusher - 推流器实例 */ static releaseV2LivePusher(livePusher: V2LivePusher): void; private constructor(); destroy(): void; /** * 监听 LivePusher 对象事件。 * * @param {V2LivePusherEvent} event - 事件名称。 * @param {Function} listener - 事件回调函数。 */ on(event: V2LivePusherEvent | symbol, listener: (...args: any[]) => void): void; /** * 取消监听 LivePusher 对象事件。 * * @param {V2LivePusherEvent} event - 事件名称。 * @param {Function} listener - 事件回调函数。 */ off(event: V2LivePusherEvent | symbol, listener: (...args: any[]) => void): void; /** * 设置本地摄像头预览 View, 本地摄像头采集到的画面,最终会显示到传入的 View 上。 * * @param {HTMLElement | null} view - 本地摄像头预览 View。 */ setRenderView(view: HTMLElement | null): void; /** * 设置本地摄像头预览镜像 * @param {V2LiveMirrorType} mirrorType - 摄像头镜像类型, 默认值为 V2LiveMirrorTypeAuto。 * V2LiveMirrorTypeEnable 前置摄像头 和 后置摄像头,都切换为镜像模式。 * V2LiveMirrorTypeDisable 前置摄像头 和 后置摄像头,都切换为非镜像模式。 * * @return {Number} - 参考 V2LiveCode 的定义 */ setRenderMirror(mirrorType: V2LiveMirrorType): number; /** * 设置视频编码镜像,默认不开启。 * 编码镜像只影响观众端看到的视频效果 * * @param {Boolean} mirror - 是否镜像。 * @return {Number} - 参考 V2LiveCode 的定义 */ setEncoderMirror(mirror: boolean): number; /** * 设置本地摄像头预览画面的旋转角度, 默认不旋转。 * 只旋转本地预览画面,不影响推流出去的画面 * * @param {V2LiveRotation} rotation - 预览画面的旋转角度, 参考 V2LiveRotation 的定义。 * @return {Number} - 参考 V2LiveCode 的定义 */ setRenderRotation(rotation: V2LiveRotation): number; /** * 设置本地摄像头预览画面的填充模式 * * @param {V2LiveFillMode} mode - 画面填充模式,参考 V2LiveFillMode 的定义。 * @return {Number} - 参考 V2LiveCode 的定义 */ setRenderFillMode(mode: V2LiveFillMode): number; /** * 打开本地摄像头 * * @param {String} cameraId - 摄像头ID,可通过 getCameraDevicesList 获取。 * @return {Number} - 参考 V2LiveCode 的定义 */ startCamera(cameraId: string): number; /** * 关闭本地摄像头 * * @return {Number} - 参考 V2LiveCode 的定义 */ stopCamera(): number; /** * 打开麦克风 * * @return {Number} - 参考 V2LiveCode 的定义 */ startMicrophone(): number; /** * 关闭麦克风 * * @return {Number} - 参考 V2LiveCode 的定义 */ stopMicrophone(): number; /** * 暂停推流器的音频流 * * @return {Number} - 参考 V2LiveCode 的定义 */ pauseAudio(): number; /** * 恢复推流器的音频流 * * @return {Number} - 参考 V2LiveCode 的定义 */ resumeAudio(): number; /** * 暂停推流器的视频流 * * @return {Number} - 参考 V2LiveCode 的定义 */ pauseVideo(): number; /** * 恢复推流器的视频流 * * @return {Number} - 参考 V2LiveCode 的定义 */ resumeVideo(): number; /** * 开始音视频数据推流 * * @param {String} url - 推流的目标地址,支持任意推流服务端。 * @return {Number} - 参考 V2LiveCode 的定义 */ startPush(url: string): number; /** * 停止推送音视频数据 * * @return {Number} - 参考 V2LiveCode 的定义 */ stopPush(): number; /** * 当前推流器是否正在推流中 * * @return {Number} - 参考 V2LiveCode 的定义 */ isPushing(): number; /** * 设置推流音频质量 * * @param {V2LiveAudioQuality} quality - 音频质量,参考 V2LiveAudioQuality 的定义。 * @return {Number} - 参考 V2LiveCode 的定义 */ setAudioQuality(quality: V2LiveAudioQuality): number; /** * 设置推流视频编码参数 * * @param {V2LiveVideoEncoderParam} param - 视频编码参数,参考 V2LiveVideoEncoderParam 的定义。 * @return {Number} - 参考 V2LiveCode 的定义 */ setVideoQuality(param: V2LiveVideoEncoderParam): number; /** * 启用采集音量大小提示 * * @param {Number} intervalMs - 决定了 onMicrophoneVolumeUpdate 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;【默认值】:0,不开启。 * @return {Number} - 参考 V2LiveCode 的定义 */ enableVolumeEvaluation(intervalMs: number): number; /** * 设置云端的混流转码参数 * * @param {V2TXLiveTranscodingConfig | null} config - 混流转码参数,参考 V2TXLiveTranscodingConfig 的定义。如果传入 null 则取消云端混流转码。 * @return {Number} */ setMixTranscodingConfig(config: V2TXLiveTranscodingConfig | null): number; /** * 获取摄像头设备列表 * * @example * var cameralist = livePusher.getCameraDevicesList(); * for (i=0;i<cameralist.length;i++) { * var camera = cameralist[i]; * console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId); * } * @return {Array<TRTCDeviceInfo>} 摄像头管理器列表 */ getCameraDevicesList(): Array<TRTCDeviceInfo>; /** * 设置要使用的摄像头 * * @param {String} deviceId - 从 getCameraDevicesList 中得到的设备 ID */ setCurrentCameraDevice(deviceId: string): void; /** * 获取当前使用的摄像头 * * @return {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称 */ getCurrentCameraDevice(): TRTCDeviceInfo; /** * 开始摄像头测试 * * @param {HTMLElement} view - 摄像头测试的显示区域 */ startCameraDeviceTest(view: HTMLElement): void; /** * 停止摄像头测试 */ stopCameraDeviceTest(): void; /** * 获取麦克风设备列表 * * @example * var miclist = livePusher.getMicDevicesList(); * for (i=0;i<miclist.length;i++) { * var mic = miclist[i]; * console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId); * } * @return {Array<TRTCDeviceInfo>} 麦克风管理器列表 */ getMicDevicesList(): Array<TRTCDeviceInfo>; /** * 获取当前选择的麦克风 * * @return {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称 */ getCurrentMicDevice(): TRTCDeviceInfo; /** * 设置要使用的麦克风 * * 选择指定的麦克风作为录音设备,不调用该接口时,默认选择索引为0的麦克风 * * @param {String} micId - 从 getMicDevicesList 中得到的设备 ID */ setCurrentMicDevice(micId: string): void; /** * 获取系统当前麦克风设备音量 * * 注意:查询的是系统硬件音量大小。 * @return {Number} 音量值,范围是0 - 100 */ getCurrentMicDeviceVolume(): number; /** * 设置系统当前麦克风设备的音量 * * 注意:该接口的功能是调节系统采集音量,如果用户直接调节系统设置的采集音量时,该接口的设置结果会被用户的操作所覆盖。 * @param {Number} volume - 麦克风音量值,范围0 - 100 */ setCurrentMicDeviceVolume(volume: number): void; /** * 设置系统当前麦克风设备的静音状态 * * @param {Boolean} mute 设置为 true 时,麦克风设备静音;设置为 false时,麦克风设备取消静音 */ setCurrentMicDeviceMute(mute: boolean): void; /** * 获取系统当前麦克风设备是否静音 * * @return {Boolean} 静音状态 */ getCurrentMicDeviceMute(): boolean; /** * 获取扬声器设备列表 * * @example * var speakerlist = livePusher.getSpeakerDevicesList(); * for (i=0;i<speakerlist.length;i++) { * var speaker = speakerlist[i]; * console.info("mic deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId); * } * @return {Array<TRTCDeviceInfo>} 扬声器管理器列表 */ getSpeakerDevicesList(): Array<TRTCDeviceInfo>; /** * 获取当前的扬声器设备 * * @return {TRTCDeviceInfo} 设备信息,能获取设备 ID 和设备名称 */ getCurrentSpeakerDevice(): TRTCDeviceInfo; /** * 设置要使用的扬声器 * * @param {String} speakerId - 从 getSpeakerDevicesList 中得到的设备 ID */ setCurrentSpeakerDevice(speakerId: string): void; /** * 获取系统当前扬声器设备音量 * * @return {Number} 扬声器音量,范围0 - 100 */ getCurrentSpeakerVolume(): number; /** * 设置系统当前扬声器设备音量 * * 注意:该接口的功能是调节系统播放音量,如果用户直接调节系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。 * * @param {Number} volume - 设置的扬声器音量,范围0 - 100 */ setCurrentSpeakerVolume(volume: number): void; /** * 设置系统当前扬声器设备的静音状态 * * @param {Boolean} mute 设置为 true 时,扬声器设备静音;设置为 false时,扬声器设备取消静音 */ setCurrentSpeakerDeviceMute(mute: boolean): void; /** * 获取系统当前扬声器设备是否静音 * * @return {Boolean} 静音状态 */ getCurrentSpeakerDeviceMute(): boolean; /** * 设置 SDK 使用的音频设备自动跟随系统默认设备 * * 仅支持设置麦克风和扬声器类型,摄像头暂不支持跟随系统默认设备 * * @param {TRTCDeviceType} deviceType - 设备类型,只支持麦克风和扬声器,摄像头不支持 * @param {Boolean} enable - 是否跟随系统默认的音频设备 * - true: 跟随。当系统默认音频设备发生改变时,SDK 立即切换音频设备。 * - false: 不跟随。只有当 SDK 使用的音频设备被移除后或插入新的音频设备为系统默认设备时,SDK 才切换至系统默认的音频设备。 */ enableFollowingDefaultAudioDevice(deviceType: TRTCDeviceType, enable: boolean): void; /** * 设置摄像头采集偏好 * * @param {TRTCCameraCaptureParams} params - 摄像头采集参数 */ setCameraCapturerParam(params: TRTCCameraCaptureParams): void; private enableCustomVideoRender; private _createPusherRender; private _destroyPusherRender; private _destroyCameraTestRender; private _setVideoRenderBuffer; private _addVideoRenderCallback; private _removeVideoRenderCallback; private _pusherVideoRenderCallback; private _cameraTestVideoRenderCallback; private initObserver; fire(event: string, ...args: any): void; private handleOnError; private handleOnWarning; private handleOnCaptureFirstAudioFrame; private handleOnCaptureFirstVideoFrame; private handleOnMicrophoneVolumeUpdate; private handleOnPushStatusUpdate; private handleOnStatisticsUpdate; }