trtc-electron-sdk
Version:
trtc electron sdk
351 lines (350 loc) • 13.2 kB
TypeScript
import { V2LiveRotation, V2LiveFillMode, V2LiveAudioQuality, V2LiveVideoEncoderParam, V2LiveMirrorType, V2LiveMode, V2LivePusherEvent } from '../live_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;
/**
* 获取摄像头设备列表
*
* @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;
private enableCustomVideoRender;
private _initPusherRender;
private _destroyPusherRender;
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;
}