QNRTCManager
QNRTCManager 是负责管理整个连麦生命周期的核心类,提供了整个连麦过程中所需要的所有控制接口。
initialize
定义 1
public void initialize(Context context, QNLocalSurfaceView localWindow)
说明
执行初始化操作,会默认开启音视频的采集,该接口会使用默认的互动配置参数
参数
| 参数名 | 描述 |
|---|---|
| context | Android 的上下文句柄 |
| localWindow | 本地 Camera 预览窗口 |
定义 2
public void initialize(Context context, QNRTCSetting setting, QNLocalSurfaceView localWindow)
说明
执行初始化操作,会默认开启音视频的采集
参数
| 参数名 | 描述 |
|---|---|
| context | Android 的上下文句柄 |
| setting | 实时音视频互动配置参数 |
| localWindow | 本地 Camera 预览窗口 |
定义 3
public void initialize(Context context, QNRTCSetting setting)
说明
执行初始化操作,可用于不需要本地视频预览的场景,也可以在初始化完后再设置预览窗口
参数
| 参数名 | 描述 |
|---|---|
| context | Android 的上下文句柄 |
| setting | 实时音视频互动配置参数 |
定义 4
public void initialize(Context context)
说明
执行初始化操作,内部会创建一个默认的 QNRTCSetting,可用于不需要本地视频预览的场景,也可以在初始化完后再设置预览窗口
参数
| 参数名 | 描述 |
|---|---|
| context | Android 的上下文句柄 |
setRoomEventListener
定义
public void setRoomEventListener(QNRoomEventListener eventListener)
说明
设置实时音视频互动过程中回调事件监听器。
参数
| 参数名 | 描述 |
|---|---|
| eventListener | 实时音视频过程中的事件回调监听器,该监听器包含了互动过程中的所有回调函数。详情请见QNRoomEventListener |
setLocalWindow
定义
public void setLocalWindow(QNLocalSurfaceView localWindow)
说明
设置本地窗口的渲染控件
参数
| 参数名 | 描述 |
|---|---|
| localWindow | 本地窗口的渲染控件 |
addRemoteWindow
定义
public void addRemoteWindow(QNRemoteSurfaceView remoteWindow)
说明
添加远端窗口的渲染控件
参数
| 参数名 | 描述 |
|---|---|
| remoteWindow | 远端窗口的渲染控件 |
joinRoom
定义
public void joinRoom(String roomToken)
说明
加入音视频互动的房间,加入房间成功后会触发 onJoinedRoom() 的回调,可以在回调里面去发布媒体流到连麦服务器
参数
| 参数名 | 描述 |
|---|---|
| roomToken | 加入房间的凭证,该 token 由 App 服务器动态生成 |
leaveRoom
定义
public void leaveRoom()
说明
离开房间
publish
定义
public void publish()
说明
发布媒体流,其中,可以通过调用 QNRTCSetting.setVideoEnabled(boolean enable) 和 QNRTCSetting.setAudioEnabled(boolean enable) 方法来配置是否发布音频或视频
unpublish
定义
public void unpublish()
说明
取消发布媒体流
subscribe
定义
public void subscribe(String userId)
说明
订阅远端用户的画面
参数
| 参数名 | 描述 |
|---|---|
| userId | 远端用户的 userId |
unsubscribe
定义
public void unsubscribe(String userId)
说明
取消订阅远端用户的画面
参数
| 参数名 | 描述 |
|---|---|
| userId | 远端用户的 userId |
muteLocalVideo
定义
public void muteLocalVideo(boolean isMute)
说明
开启/关闭本地视频,关闭后其他连麦者看不到本地的画面
参数
| 参数名 | 描述 |
|---|---|
| isMute | 开启(false)或者关闭(true)本地视频 |
muteLocalAudio
定义
public void muteLocalAudio(boolean isMute)
说明
开启/关闭本地音频,关闭后其他连麦者听不到本地的音频
参数
| 参数名 | 描述 |
|---|---|
| isMute | 开启(false)或者关闭(true)本地音频 |
muteRemoteAudio
定义
public void muteRemoteAudio(boolean isMute)
说明
开启/关闭远端音频
参数
| 参数名 | 描述 |
|---|---|
| isMute | 开启(false)或者关闭(true)远端音频 |
setPreviewEnabled
定义
public void setPreviewEnabled(boolean isEnabled)
说明
开启/关闭本地预览
参数
| 参数名 | 描述 |
|---|---|
| isEnabled | 开启(true)或者关闭(false)本地预览 |
setMirror
定义
public void setMirror(boolean isMirrorEnabled)
说明
设置是否开启镜像,默认关闭
参数
| 参数名 | 描述 |
|---|---|
| isMirrorEnabled | 开启(true)或者关闭(false)镜像 |
switchCamera
定义
public void switchCamera(QNCameraSwitchResultCallback callback)
说明
切换摄像头,切换成功与否会通过 QNCameraSwitchResultCallback 回调出来,若不需要结果回调,可以传入 null
参数
| 参数名 | 描述 |
|---|---|
| callback | 切换成功与否的回调,详情请见QNCameraSwitchResultCallback |
turnLightOn
定义
public boolean turnLightOn()
说明
开启闪光灯
返回值
开启成功或者失败
turnLightOff
定义
public boolean turnLightOff()
说明
关闭闪光灯
返回值
关闭成功或者失败
manualFocus
定义
public void manualFocus(float x, float y, int viewWidth, int viewHeight)
说明
设置手动对焦
参数
| 参数名 | 描述 |
|---|---|
| x | 对焦框的 x 坐标 |
| y | 对焦框的 y 坐标 |
| viewWidth | 预览窗口的宽度 |
| viewHeight | 预览窗口的高度 |
kickOutUser
定义
public void kickOutUser(String userId)
说明
踢人接口,踢人方需要有相应的踢人权限才可执行踢人的操作
参数
| 参数名 | 描述 |
|---|---|
| userId | 远端用户的 userId |
getUserList
定义
public ArrayList<String> getUserList()
说明
获取参与实时音视频互动的用户列表
返回值
当前参与实时音视频互动的用户列表
getPublishingUserList
定义
public ArrayList<String> getPublishingUserList()
说明
获取参与实时音视频互动的用户中发布音视频的用户列表
返回值
当前参与实时音视频互动的用户中发布音视频的用户列表
setStatisticsInfoEnabled
定义
public void setStatisticsInfoEnabled(String userId, boolean enable, int periodMs)
说明
开启/关闭连麦的统计信息功能,默认为关闭状态
参数
| 参数名 | 描述 |
|---|---|
| userId | 用户的 userId |
| enable | 是否开启统计 |
| periodMs | 统计的时间间隔 |
getRoomState
定义
public QNRoomState getRoomState()
说明
获取当前的房间状态信息
返回值
当前的房间状态信息,包括 IDLE、CONNECTING、CONNECTED 以及 RECONNECTING 等状态
setBeauty
定义
public void setBeauty(QNBeautySetting beautySetting)
说明
设置美颜的参数
参数
| 参数名 | 描述 |
|---|---|
| beautySetting | 美颜的配置类,详情请见QNBeautySetting |
setMergeStreamLayout
定义
public void setMergeStreamLayout(String userId, int x, int y, int z, int width, int height)
说明
设置服务端合流参数. 左上角为合流画面坐标原点
参数
| 参数名 | 描述 |
|---|---|
| userId | 本次设置所对应的 userId |
| x | 在合流画面中的 x 轴坐标 |
| y | 在合流画面中的 y 轴坐标 |
| z | 在合流画面中的层次,0 在最底层 |
| width | 在合流画面中的宽度 |
| height | 在合流画面中的高度 |
setMergeStreamLayout
定义
public void setMergeStreamLayout(String userId, int x, int y, int z, int width, int height, boolean isHidden, boolean isMuted)
说明
设置服务端合流参数. 左上角为合流画面坐标原点
参数
| 参数名 | 描述 |
|---|---|
| userId | 本次设置所对应的 userId |
| x | 在合流画面中的 x 轴坐标 |
| y | 在合流画面中的 y 轴坐标 |
| z | 在合流画面中的层次,0 在最底层 |
| width | 在合流画面中的宽度 |
| height | 在合流画面中的高度 |
| isHidden | 是否在合流中隐藏该用户的视频 |
| isMuted | 是否在合流中屏蔽该用户的音频 |
stopMergeStream
定义
public void stopMergeStream()
说明
停止合流
setDefaultAudioRouteToSpeakerphone
定义
public void setDefaultAudioRouteToSpeakerphone(boolean defaultToSpeaker)
说明
设置默认音频输出设备是否为扬声器
参数
| 参数名 | 描述 |
|---|---|
| defaultToSpeaker | 默认音频输出设备是否为扬声器 |
setSpeakerphoneOn
定义
public void setSpeakerphoneOn(boolean on)
说明
是否强制设置扬声器为音频输出设备
参数
| 参数名 | 描述 |
|---|---|
| on | 是否强制设置扬声器为音频输出设备 |
setAudioSourceCallback
定义
public void setAudioSourceCallback(QNAudioSourceCallback callback)
说明
添加回调以监听本地音频数据
参数
| 参数名 | 描述 |
|---|---|
| callback | 本地音频数据回调接口类,详情请见QNAudioSourceCallback |
addRemoteAudioCallback
定义
public void addRemoteAudioCallback(String userId, QNRemoteAudioCallback callback)
说明
添加回调以监听远端用户音频数据
参数
| 参数名 | 描述 |
|---|---|
| userId | 远端用户 id |
| callback | 远端用户音频数据回调接口类,详情请见QNRemoteAudioCallback |
switchWindow
定义
public void switchWindow(QNRemoteSurfaceView remoteSurfaceView)
说明
切换本地和远端的渲染控件。
参数
| 参数名 | 描述 |
|---|---|
| remoteSurfaceView | 远端窗口的渲染控件 |
inputVideoFrame
定义
public void inputVideoFrame(byte[] buffer, int width, int height, int rotation, long timestampNs)
说明
导入外部视频数据,支持的视频格式为:NV21 格式,为兼容所有机型,建议选择软编码的方式进行导入。
参数
| 参数名 | 描述 |
|---|---|
| buffer | 导入视频帧的数据 |
| width | 导入视频帧的宽 |
| height | 导入视频帧的高 |
| rotation | 导入视频帧的旋转角度 |
| timestampNs | 导入视频帧的时间戳 |
inputAudioFrame
定义
public void inputAudioFrame(byte[] buffer)
说明
导入外部音频数据,支持的音频数据格式为:PCM 格式,48000 采样率,16 位宽,单声道。
参数
| 参数名 | 描述 |
|---|---|
| buffer | 导入音频帧的数据 |
destroy
定义
public void destroy()
说明
销毁整个对象,释放相关资源,建议在 Activity.onDestroy() 中调用