QNRTCEngine
/**
* 创建 QNRTCEngine 核心类
*
* @param context Android 上下文句柄
* @return QNRTCEngine QNRTCEngine核心类单例
*/
public static QNRTCEngine createEngine(Context context);
/**
* 创建 QNRTCEngine 核心类
*
* @param context Android 上下文句柄
* @param setting 实时音视频互动配置参数
* @return QNRTCEngine QNRTCEngine核心类单例
*/
public static QNRTCEngine createEngine(Context context, QNRTCSetting setting);
/**
* 创建 QNRTCEngine 核心类
*
* @param context Android 上下文句柄
* @param eventListener 音视频通话事件监听器,该监听器包含了互动过程中的所有回调函数
* @return QNRTCEngine QNRTCEngine核心类单例
*/
public static QNRTCEngine createEngine(Context context, QNRTCEngineEventListener eventListener);
/**
* 创建 QNRTCEngine 核心类
*
* @param context Android 上下文句柄
* @param setting 实时音视频互动配置参数
* @param eventListener 音视频通话事件监听器,该监听器包含了互动过程中的所有回调函数
* @return QNRTCEngine QNRTCEngine核心类单例
*/
public static QNRTCEngine createEngine(Context context, QNRTCSetting setting, QNRTCEngineEventListener eventListener);
/**
* 创建一个 TrackInfo 的 Builder 以创建 Track
*
* @return TrackInfoBuilder TrackInfo 的 Builder
*/
public QNTrackInfoBuilder createTrackInfoBuilder();
/**
* 销毁指定 Track
*
* @param localTrack 本地 TrackInfo 对象
*/
public void destroyTrack(QNTrackInfo localTrack);
/**
* 设置是否自动订阅,默认值为 true
*
* @param autoSubscribe 是否开启自动订阅
*/
public void setAutoSubscribe(boolean autoSubscribe);
/**
* 启动相机采集,可在通话过程中调用以获取相机资源
*/
public void startCapture();
/**
* 停止相机采集,可在通话过程中调用以释放相机资源
*/
public void stopCapture();
/**
* 设置预览窗口
*
* @param previewWindow 预览窗口
*/
public void setCapturePreviewWindow(QNSurfaceView previewWindow);
/**
* 设置本地预览的视频数据回调,可用于接入美颜、滤镜等
*
* @param captureVideoCallBack 视频数据回调
*/
public void setCaptureVideoCallBack(QNCaptureVideoCallback captureVideoCallBack);
/**
* 设置 Track 的渲染窗口
*
* @param trackInfo TrackInfo 对象
* @param renderView 渲染窗口对象
*/
public void setRenderWindow(QNTrackInfo trackInfo, QNSurfaceView renderView);
/**
* 设置远端音频回调
*
* @param trackInfo 音频 TrackInfo 对象
* @param callback 音频数据回调
*/
public void setRemoteAudioCallback(QNTrackInfo trackInfo, QNRemoteAudioCallback callback);
/**
* 设置音频音量回调
*
* @param trackInfo 音频 TrackInfo 对象
* @param callback 音频音量回调
*/
public void setAudioVolumeCallback(QNTrackInfo trackInfo, QNAudioVolumeCallback callback);
/**
* 设置音视频通话事件监听器
*
* @param eventListener 事件监听器,该监听器包含了互动过程中的所有回调函数
*/
public void setEventListener(QNRTCEngineEventListener eventListener);
/**
* 获取房间状态
*
* @return QNRoomState 房间状态
*/
public QNRoomState getRoomState();
/**
* 加入房间
*
* @param roomToken roomToken
*/
public void joinRoom(String roomToken) {
joinRoom(roomToken, null);
}
/**
* 加入房间
*
* @param roomToken roomToken
* @param userData 用户的更多额外数据
*/
public void joinRoom(String roomToken, String userData);
/**
* 简单接口发布,发布一路 master 的麦克风音频 Track 和一路 master 的相机视频 Track
*/
public void publish();
/**
* 简单接口取消发布,取消发布 master 的音频 Track 和 master 的视频 Track
*/
public void unPublish();
/**
* 简单接口发布纯音频,发布一路 master 的来自麦克风采集的音频 Track
*/
public void publishAudio();
/**
* 静音本地音频
*/
public void muteLocalAudio(boolean isMute);
/**
* 简单接口取消发布音频,取消发布 master 的来自麦克风采集的音频 Track
*/
public void unPublishAudio();
/**
* 简单接口发布纯视频,发布一路 master 的来自相机采集的视频 Track
*/
public void publishVideo();
/**
* mute 本地视频
*/
public void muteLocalVideo(boolean isMute);
/**
* 简单接口取消发布视频,取消发布 master 的来自相机采集的视频 Track
*/
public void unPublishVideo();
/**
* 发布多个 Tracks
*
* @param trackInfoList Tracks 的 TrackInfo 对象列表
*/
public void publishTracks(List<QNTrackInfo> trackInfoList);
/**
* 取消发布多个 Tracks
*
* @param trackInfoList Tracks 的 TrackInfo 对象列表
*/
public void unPublishTracks(List<QNTrackInfo> trackInfoList);
/**
* mute 多个 Tracks
*
* @param trackInfoList Tracks 的 TrackInfo 对象列表
*/
public void muteTracks(List<QNTrackInfo> trackInfoList);
/**
* 订阅多个 Tracks
*
* @param trackInfoList Tracks 的 TrackInfo 对象列表
*/
public void subscribeTracks(List<QNTrackInfo> trackInfoList);
/**
* 取消订阅多个 Tracks
*
* @param trackInfoList Tracks 的 TrackInfo 对象列表
*/
public void unSubscribeTracks(List<QNTrackInfo> trackInfoList);
/**
* 离开房间
*/
public void leaveRoom();
/**
* 获取房间内的用户列表
*/
public List<QNRTCUser> getUserList();
/**
* 是否为第一个用户
*/
public boolean isFirstUser();
/**
* 切换摄像头
*/
public void switchCamera(QNCameraSwitchResultCallback callback);
/**
* 打开闪光灯
*/
public boolean turnLightOn();
/**
* 关闭闪光灯
*/
public boolean turnLightOff();
/**
* 手动对焦
*
* @param x 对焦框的 x 坐标
* @param y 对焦框的 y 坐标
* @param viewWidth 当前预览窗口的宽
* @param viewHeight 当前预览窗口的高
*/
public void manualFocus(float x, float y, int viewWidth, int viewHeight);
/**
* 曝光补偿
*
* @param value 曝光补偿的值
*/
public void setExposureCompensation(int value);
/**
* 获取曝光补偿最大值
*
* @return 曝光补偿最大值
*/
public int getMaxExposureCompensation();
/**
* 获取曝光补偿最小值
*
* @return 曝光补偿最小值
*/
public int getMinExposureCompensation();
/**
* 设置缩放。在使用此接口前必须获取可缩放值的列表,用里面的值作为参数
*
* @param 缩放值
*/
public void setZoom(float zoom);
/**
* 获取可缩放值列表
*
* @return 可缩放值的列表,如果为空则表示不支持缩放
*/
public List<Float> getZooms();
/**
* 设置相机采集镜像,设置镜像后远端渲染和本地预览都是镜像的
*
* @param isMirrorEnabled 是否镜像
*/
public void setMirror(boolean isMirrorEnabled);
/**
* 设置本地预览镜像,设置镜像后本地预览是镜像的,远端预览还是正常的
*/
public void setPreviewMirror(boolean mirror);
/**
* mute 远端音频
*/
public void muteRemoteAudio(boolean isMute);
/**
* 是否允许本地预览
*/
public void setPreviewEnabled(boolean isEnabled);
/**
* 设置美颜
*
* @param QNBeautySetting 美颜参数
*/
public void setBeauty(QNBeautySetting beautySetting);
/**
* 设置初始化或音频设备状态改变时使用的默认音频路由。
* eg. 插入/拔出音频插孔中的设备
*
* @param defaultToSpeaker 如果为 true, 则为扬声器; 如果为 false, 则为听筒
*/
public void setDefaultAudioRouteToSpeakerphone(boolean defaultToSpeaker);
/**
* 设置扬声器开关
*
* @param 如果为 true,则为开启; 如果为 false,则为关闭
*/
public void setSpeakerphoneOn(boolean on);
/**
* 设置音频数据回调
*
* @param callback 音频数据回调
*/
public void setAudioSourceCallback(QNAudioSourceCallback callback);
/**
* 开始数据统计,默认间隔为 3s
*/
public void enableStatistics();
/**
* 开启数据统计
*
* @param periodMs 每次统计间隔时间
*/
public void enableStatistics(int periodMs);
/**
* 关闭数据统计
*/
public void disableStatistics();
/**
* 导入视频帧数据
*
* @param trackId 导入视频数据指定的 TrackId
* @param frame 视频帧数据
*/
public void pushVideoBuffer(String trackId, QNVideoFrame frame);
/**
* 导入音频数据
*
* @param buffer 音频数据,格式为 PCM 格式,48000 采样率,16 位宽,单声道
*/
public void pushAudioBuffer(byte[] buffer);
/**
* 导入音频数据
*
* @param buffer 音频数据
* @param audioFormat 音频格式
*/
public void pushAudioBuffer(byte[] buffer, QNAudioFormat audioFormat);
/**
* 创建合流任务,
* 若无权限进行创建,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_NO_PERMISSION (10051) 错误码
* 若参数错误,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_INVALID_PARAMETER (10053) 错误码
*
* @param mergeJob 合流任务
*/
public void createMergeJob(QNMergeJob mergeJob);
/**
* 设置合流布局
* 若无权限进行设置,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_NO_PERMISSION (10051) 错误码
* 若参数错误,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_INVALID_PARAMETER (10053) 错误码
*
* @param addedTracks 需要合流的 QNMergeTrackOption 对象列表
* @param jobId(可选) 合流任务 ID
*/
public void setMergeStreamLayouts(List<QNMergeTrackOption> addedTracks, String jobId);
/**
* 移除合流布局
* 若无权限进行移除,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_NO_PERMISSION (10051) 错误码
* 若参数错误,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_INVALID_PARAMETER (10053) 错误码
*
* @param removedTracks 取消合流的 QNMergeTrackOption 对象列表
* @param jobId 合流任务 ID
*/
public void removeMergeStreamLayouts(List<QNMergeTrackOption> removedTracks, String jobId);
/**
* 停止合流
*
* @param mergeJobId 停止合流的合流任务 ID
*/
public void stopMergeStream(String mergeJobId);
/**
* 释放资源
*/
public void destroy();
/**
* 踢出用户
* 若无权限进行踢人,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_NO_PERMISSION (10051) 错误码
* 若参数错误,则会在 QNRTCEngineEventListener#onError 中回调 QNErrorCode.ERROR_INVALID_PARAMETER (10053) 错误码
*
* @param userId 踢出用户的 userId
*/
public void kickOutUser(String userId);
/**
* 发送自定义消息
*
* @param users 目标用户列表,为 null 时则给房间中的所有人发消息
* @param messageId 消息ID,可以为空
* @param message 消息内容
*/
public void sendMessage(List<String> users, String messageId, String message);