方法 | 描述 |
init | 初始化 SDK |
销毁 SDK | |
获取 SDK 版本号 |
方法 | 描述 |
SDK 用户登录 | |
小鱼账号登录 | |
三方授权登录 | |
获取当前登录用户 Id | |
获取当前用户呼叫号码 | |
logout | 退出登录 |
重连 ws | |
设置 ws 状态回调 | |
刷新token |
方法 | 描述 |
开始呼叫 | |
设置呼叫状态回调 | |
设置来电回调 | |
切换通话模式 | |
应答来电 | |
hangup | 挂断当前通话 |
是否会议中 |
方法 | 描述 |
获取本地视频资源 ID | |
聚焦指定 participantId 视频 | |
是否自定义布局 | |
设置布局构建器 | |
呼叫结束 释放布局资源 | |
获取请流视频源 Id | |
订阅参会者 | |
请求参会者视频 |
方法 | 描述 |
切换本地摄像头 | |
打开/关闭本地视频 | |
切换听筒/扬声器模式 | |
关闭/打开本地麦克风 | |
打开/关闭音频播放 | |
麦克风是否静音 | |
打开/关闭音频采集 | |
遥控远端硬件终端 | |
获取参会者(除自己)声音能量值 | |
设置通话中的默认输出类型 | |
是否 Speaker 默认使用扬声器 | |
默认的 cameraId | |
设置默认 cameraId | |
请求相机资源 | |
释放相机资源 | |
请求录音机资源 | |
释放录音机音频 | |
设置音频采集数据回调 | |
设置音频数据回调 | |
音频旁路开关 | |
设置手机系统方向 | |
设置本地最大发送视频分辨率 | |
DTMF 键盘 | |
获取本地视频源图像信息 | |
设置视频虚拟背景模式 | |
获取当前使用CameraId |
方法 | 描述 |
获取会控地址 | |
handUp | 举手发言 |
取消举手 | |
结束发言 | |
signIn | 签到 |
设置互动事件回调 |
方法 | 描述 |
开始录制 | |
停止录制 |
方法 | 描述 |
开启白板 | |
关闭白板 | |
注册白板状态回调 | |
发送白板数据 |
方法 | 描述 |
开启批注 | |
关闭批注 | |
注册批注状态回调 | |
发送批注数据 |
方法 | 描述 |
开始共享 | |
结束共享 |
方法 | 描述 |
是否打开人脸识别 | |
是否打开广播电子铭牌 | |
设置人脸识别模式状态 | |
获取单个人脸信息 | |
获取多个人脸信息 |
方法 | 描述 |
获取统计信息 |
方法 | 描述 |
获取网络线路集合 | |
配置网络线路 | |
删除网络线路选择 | |
设置网络测速回调 | |
开始网络测试 | |
结束网络测试 | |
测试代理服务器 | |
设置代理服务器 |
方法 | 描述 |
获取本地视频源的图像信息, 返回图像的字节数组 | |
提交反馈 | |
获取 Url 签名结果 | |
设置省流量模式 |
初始化 SDK。
参数:
public void init(Context context, Settings settings)
public class Settings {
/** 企业身份标识 */
private String extID;
/** 应用clientId */
private String clientId;
/** 应用clientSecret */
private String clientSecret;
/** 私有云地址 */
private String privateCloudAddress;
/** 打印Log等级 */
private LogLevel logLevel = LogLevel.LogLevel_Info;
/** 0:后置 默认1:前置 */
private int defaultCameraId = 1;
}
销毁 SDK,在应用退出时调用释放资源。
public void shutdown()
获取 SDK 版本号。
public String getSDKVersion()
三方账户登录接口。
参数:
//三方账户登录接口
public void loginExternalAccount(String displayName, String externalUserId, ConnectNemoCallback loginCallback)
//登录回调方法
public interface ConnectNemoCallback {
/**
* 连接小鱼服务失败
* @param errorCode 错误码
*/
void onFailed(String errorCode);
/**
* 连接小鱼服务成功
* @param resp 登录成功的回调数据
* @param isDetectingNetworkTopology 是否需要网络探测
*/
void onSuccess(LoginResponseData resp, boolean isDetectingNetworkTopology);
/**
* 网络探测结束回调
* @param resp 登录成功的回调数据
*/
void onNetworkTopologyDetectionFinished(LoginResponseData resp);
}
三方账户登录接口。(携带企业 ID)
参数:
//登录方法
public void loginExternalAccount(String displayName, String externalUserId, String extId, ConnectNemoCallback loginCallback)
//登录回调方法
public interface ConnectNemoCallback {
/**
* 连接小鱼服务失败
* @param errorCode 错误码
*/
void onFailed(String errorCode);
/**
* 连接小鱼服务成功
* @param resp 登录成功的回调数据
* @param isDetectingNetworkTopology 是否需要网络探测
*/
void onSuccess(LoginResponseData resp, boolean isDetectingNetworkTopology);
/**
* 网络探测结束回调
* @param resp 登录成功的回调数据
*/
void onNetworkTopologyDetectionFinished(LoginResponseData resp);
}
小鱼账号登录接口。
参数:
//小鱼账号登录
public void loginXYlinkAccount(String username, String password, ConnectNemoCallback loginCallback)
//登录回调方法
public interface ConnectNemoCallback {
/**
* 连接小鱼服务失败
* @param errorCode 错误码
*/
void onFailed(String errorCode);
/**
* 连接小鱼服务成功
* @param resp 登录成功的回调数据
* @param isDetectingNetworkTopology 是否需要网络探测
*/
void onSuccess(LoginResponseData resp, boolean isDetectingNetworkTopology);
/**
* 网络探测结束回调
* @param resp 登录成功的回调数据
*/
void onNetworkTopologyDetectionFinished(LoginResponseData resp);
}
三方鉴权登录接口。
参数:
//三方鉴权登录接口
public void loginExternalAccountByToken(String account, String token, ConnectNemoCallback loginCallback)
//登录回调方法
public interface ConnectNemoCallback {
/**
* 连接小鱼服务失败
* @param errorCode 错误码
*/
void onFailed(String errorCode);
/**
* 连接小鱼服务成功
* @param resp 登录成功的回调数据
* @param isDetectingNetworkTopology 是否需要网络探测
*/
void onSuccess(LoginResponseData resp, boolean isDetectingNetworkTopology);
/**
* 网络探测结束回调
* @param resp 登录成功的回调数据
*/
void onNetworkTopologyDetectionFinished(LoginResponseData resp);
}
退出登录。
public void logout()
获取当前登录用户 Id。
public long getUserId()
获取当前登录用户呼叫号码。
public String getCallNumber()
重新连接 WS。
public void reconnect()
设置 Ws 链接状态回调。
参数:
//设置Ws链接状态回调callback
public void setOnStateChangeListener(OnStateChangeListener stateChangeListener)
//Ws链接状态回调方法
public interface OnStateChangeListener {
/**
* 连接状态回调
*/
void onConnectStateChanged(boolean connected);
/**
* 重新认证回调(账号登录认证失效)
*/
void unauthorized();
/**
* token过期
*/
void onTokenExpired();
}
刷新token。
参数:
public void refreshToken(String refreshToken, RefreshTokenCallback callback)
public interface RefreshTokenCallback {
//刷新token成功回调
void onRefreshTokenSuccess(TokenInfo tokenInfo);
//刷新token失败回调
void onRefreshTokenFail(String errorCode, String msg);
}
呼叫接口。
参数:
public void makeCall(String number, String password, MakeCallResponse response)
//呼叫回调方法
public interface MakeCallResponse {
//呼叫成功回调,此时可以准备进入呼叫界面。
void onCallSuccess();
//呼叫失败回调。
void onCallFail(String error, String msg);
}
呼叫接口,可设置音视频Mute状态。
参数:
public void makeCall(String number, String password, boolean micMute, boolean videoMute, MakeCallResponse response)
//呼叫回调方法
public interface MakeCallResponse {
//呼叫成功回调,此时可以准备进入呼叫界面。
void onCallSuccess();
//呼叫失败回调。
void onCallFail(String error, String msg);
}
设置呼叫中事件回调。
参数:
//设置会中事件回调方法
public void setNemoSDKListener(NemoSDKListener nemoSDKListener)
//会议中回调方法
public interface NemoSDKListener {
/**
* 通话状态改变回调
*
* @param state 呼叫状态
* @param reason 只有在state=DISCONNECTED时,有相应的原因。其他状态reason为null。
*/
void onCallStateChange(CallState state, String reason);
/**
* 通话视频信息改变回调
*
* @param videoInfos 当前通话视频信息
* @param hasVideoContent 是否有参会者正在内容分享
*/
void onVideoDataSourceChange(List<VideoInfo> videoInfos, boolean hasVideoContent);
/**
* 与会者信息变化回调
*
* @param roster 参会者信息
*/
void onRosterChange(RosterWrapper roster);
/**
* 会控消息改变通知
* @param confMgmtState 会控信息
*/
void onConfMgmtStateChanged(ConfMgmtState confMgmtState);
/**
* 录制消息变化回调
*
* @param callIndex
* @param isStart true 开始,false 结束
* @param displayName 录制发起人
*/
void onRecordStatusNotification(int callIndex, boolean isStart, String displayName);
/**
* 用户被踢下线回调,可能同一账号在其他端登录
*
* @param code 错误码
* @param reason 参考附录
*/
void onKickOut(int code, int reason);
/**
* 本地网络质量提示
*
* @param level 1、2、3、4个等级,差-中-良-优
*/
void onNetworkIndicatorLevel(int level);
/**
* 视频状态提示
*
* @param videoStatus 0:正常 1:本地网络不稳定 2:系统忙,视频质量降低 3:对方网络不稳定 4:网络不稳定,请稍候 5:WiFi信号不稳定
*/
void onVideoStatusChange(int videoStatus);
/**
* 呼叫中提示
*
* @param callIndex
* @param type 呼叫类型
* @param values 呼叫人数
*/
void onIMNotification(int callIndex, String type, String values);
/**
* 来电的回调
*
* @param name 名称
* @param number 号码
*/
void onCallReceive(String name, String number, int callIndex);
/**
* @param state 状态
* @param reason
* @param type
*/
void onDualStreamStateChange(NemoDualState state, String reason, int type);
/**
* 人脸信息回调
*
* @param aiParam 人脸信息
* @param isLocalFace 是否为本地人脸信息, true:为本地人脸, false: 远端人脸信息
*/
void onAiFace(AIParam aiParam, boolean isLocalFace);
/**
* 同传字幕回调
*
* @param aiCaptionInfo
*/
void onAiCaption(AICaptionInfo aiCaptionInfo);
/**
* 通话中收到来电
*
* @param callIndex
* @param callNumber
*/
void onCallInvite(CallState state, int callIndex, String callNumber, String callName);
/**
* 会议中弹幕
*
* @param content 消息内容
* @param location 消息显示位置,top上方显示,middle中间显示,bottom底部显示
* @param action 操作消息动作,push推送消息,cancel取消显示消息
* @param scroll 消息是否滚动,0 不滚动,1 滚动
* @param fontSize 字幕文字大小,small、middle、big
* @param fontRGB 字幕文字颜色 rgb
* @param scrollSpeed 字幕滚动速度,low、middle、high
* @param backgroundAlpha 字幕背景透明度 0 - 1
* @param backgroundRGB 字幕背景颜色 rgb
*/
void onCaptionNotification(String content, String location, String action, String scroll, String fontSize, String fontRGB, String scrollSpeed, String backgroundAlpha, String backgroundRGB);
/**
* Active Speaker 变化
* @param speakers 发言者列表
*/
void onSpeakerChanged(List<Speaker> speakers);
/**
* 回声检测
*/
void onHowlingDetected(boolean detected);
/**
* 出入会通知
*/
void onInOutReminder(List<InOutMeetingInfo> inOutList);
/**
* 获取gpu 回调
* @param gpu gps信息
*/
void onGpuInfoResult(List<String> gpu);
/**
* 会议是否锁定邀请
*/
void onMeetingLocked(String meetingId, boolean locked);
/**
* 会议主持状态
*/
void onMeetingHostChanged(String meetingId, boolean host);
}
设置被呼叫回调。(未在会议中)
参数:
public void setNemoReceivedCallListener(@NonNull NemoReceivedCallListener nemoReceivedCallListener)
//被呼叫回调方法
public interface NemoReceivedCallListener {
/**
* 接收呼叫回调
* @param name 呼叫者的名称
* @param number 呼叫者号码
* @param callIndex 呼叫的index,回应此呼叫时需要使用
*/
void onReceivedCall(String name, String number, int callIndex);
}
切换会议模式。
参数:
public void switchCallMode(boolean audioMode)
应答通话中来电。
参数:
public void answerCall(int callIndex, boolean accept)
挂断当前通话。
public void hangup()
当前是否通话中。
public void inCalling()
获取本地视资源 ID。
public static String getLocalVideoStreamID()
视频会议中,聚焦到指定 participantId 的视频。在网络状况不好时,会优先分配更高的分辨率。
参数:
public void forceLayout(int participantId)
是否自定义布局。
public boolean isCustomLayoutEnabled()
设置布局构建器。
参数:
public void setLayoutBuilder(LayoutBuilder layoutBuilder)
//请流合集计算
public interface LayoutBuilder {
/**
* 计算布局元素
* @param policy layoutPolicy
* @return 请流集合
*/
List<LayoutElement> compute(LayoutPolicy policy);
}
退出应用 UI 之后,释放布局资源。
public void releaseLayout()
获取数据源 id。
public String getDataSourceId()
订阅参会者。
参数:
public void subscribeRoster(List<String> uris)
请求参会者视频。
参数:
public void requestRoster(int startIndex, int length)
切换本地摄像头。
参数:
public void switchCamera(int cameraId)
打开、关闭本地视频。
参数:
public void setVideoMute(boolean isMuteVideo)
同步手机系统方向,用于配合处理相机采集数据。
参数:
public void setOrientation(@Orientation int orientation)
//屏幕方向定义
public @interface Orientation {
int PORTRAIT = 0; // 竖屏 0度:手机默认竖屏状态(home键在正下方)
int LANDSCAPE = 3; // 横屏 90度:手机顺时针旋转90度横屏(home建在左侧)
int REVERSE_LANDSCAPE = 2; // 反向横屏 270度:手机顺时针旋转270度横屏,(home键在右侧)
}
切换听筒/扬声器播放模式。
参数:
public void switchSpeakerOnModle(boolean speakerModle)
关闭、打开本地麦克风。
参数:
public void enableMic(boolean isMuteMic, boolean notifyRemote)
关闭、打开音频播放。
参数:
public void setSpeakerMute(boolean mute)
麦克风是否静音。
public boolean isMicMuted()
设置音频静音。
参数:
public void setAudioMute(boolean mute)
手机端发送指令远程遥控小鱼终端。
参数:
public void farEndHardwareControl(int participantId, FECCCommand command, int angle)
//Fecc指令定义
public enum FECCCommand implements Parcelable {
FECC_TURN_LEFT,
FECC_STEP_LEFT,
FECC_TURN_RIGHT,
FECC_STEP_RIGHT,
FECC_TURN_STOP,
TILT_CAMERA_TURN_UP,
TILT_CAMERA_STEP_UP,
TILT_CAMERA_TURN_DOWN,
TILT_CAMERA_STEP_DOWN,
TILT_CAMERA_TURN_STOP,
FECC_ZOOM_IN,
FECC_ZOOM_OUT,
FECC_STEP_ZOOM_IN,
FECC_STEP_ZOOM_OUT,
FECC_ZOOM_TURN_STOP,
FECC_UNKNOWN;
获取参会者(除自己)声音能量值。
public ArrayList<AudioMeter> getAudioPeakMeters()
设置通话时的默认输出类型,默认扬声器。
参数:
public void setSpeakerOnModeDefault(boolean speakerOnModeDefault)
是否 Speaker 默认使用扬声器。
public boolean isSpeakerOnModeDefault()
获取默认打开的 Camera Id。
public static int defaultCameraId()
设置默认打开的 Camera Id。
public void setDefaultCameraId(int cameraId)
请求 Camera 相机资源。
public void requestCamera()
释放 Camera 相机资源。
public void releaseCamera()
请求录音机资源。
public void requestAudioMic()
释放录音机资源。
public void releaseAudioMic()
设置音频采集数据回调。
参数:
public void setMicAudioDataListener(AudioDataListener micAudioDataListener)
设置音频旁路可用状态。
参数:
public void setMicDataByAEReadyEnabled(boolean enabled)
设置音频旁路数据回调接口。需要在 setMicDataByAEReadyEnabled 接口打开音频旁路开关后才会收到回调数据。
参数:
public void setAEAudioDataListener(AudioDataListener audioDataListener)
//音频旁路回调
public interface AudioDataListener {
/**
* @param data 音频字节数组
* @param length 字节数组长度
* @param formatType 压缩格式
* @param samplesPerSec 采样率
* @param numChannels 通道数
* @param bitsPerSample 每个采样点的bit数
*/
void onMicDataReady(byte[] data, int length, int formatType, int samplesPerSec, int numChannels, int bitsPerSample);
}
设置本地最大发送视频分辨率。
参数:
public void setVideoConfiguration(@VideoConfig String videoMaxResolutionTx)
//支持分辨率枚举
public @interface VideoConfig {
String VD_640x360 = "640_360";
String VD_1280x720 = "1280_720";
}
DTMF 键盘。
参数:
public void sendDtmf(String uri, String key)
获取网络线路集合
public Observable<List<SitePath>> getSitePaths()
配置网络线路
参数:
Observable<Integer> configSitePath(String sitePathId)
删除网络线路配置
public Observable<Integer> deleteSitePath()
设置网络测试回调
参数:
public void setNetworkTestListener(NNTJniListener.OnNetworkDiagnoseListener listener)
开始网络测试
public void startNetworkTest()
结束网络测试
public void stopNetworkTest()
测试代理服务器
参数:
public void validateSocksProxy(String ip, int port, String userName, String password, SocketProxyCallback socketProxyCallback)
设置代理服务器
参数:
public void setSocksProxy(String ip, int port, String userName, String password)
获取本地视频源的图像信息, 返回图像的字节数组。
public byte[] getLocalVideoData()
设置视频虚拟背景模式。
参数:
/**
* 设置视频虚拟背景
*
* @param bgMode 虚拟背景模式
* @param imgPath 虚拟背景图片路径
* @param imgWidth 虚拟背景图片宽度
* @param imgHeight 虚拟背景图片高度
*/
public void setVirtualBgMode(int bgMode, String imgPath, int imgWidth, int imgHeight)
获取当前使用的CameraId。
public int getCurrentCameraId()
获取会控地址。
public String getMeetingHost()
举手发言,该接口在会控强制静音模式下使用。
public void handUp()
取消举手,该接口在会控强制静音模式下使用。
public void handDown()
结束发言,该接口在会控强制静音模式下使用。
public void endSpeech()
签到。
参数 :
public void signIn(SignStartResponse response)
设置互动事件回调。
参数:
public void setInteractiveEventCallback(InteractiveEventCallback callback)
public interface InteractiveEventCallback {
//开始签到
void onSignInStart(SignStartResponse response);
//结束签到
void onSignInStop(SignStopResponse response);
//签到结果
void onSignInResult(SignResultResponse signResponse);
}
开始录制。
参数:
public void startRecord(String meetingNumber, RecordCallback callback)
public interface RecordCallback {
/**
* 录制启动失败
* @param errorCode 错误码
*/
void onFailed(int errorCode);
/**
* 录制启动成功
*/
void onSuccess();
}
停止录制。
public void stopRecord()
开启白板。
public void startWhiteboard()
关闭白板。
public void stopWhiteboard()
注册白板服务状态回调。
参数:
public void registerWhiteboardChangeListener(WhiteboardChangeListener listener)
//白板服务回调
public interface WhiteboardChangeListener {
/**
* 白板打开。
*/
void onWhiteboardStart();
/**
* 白板关闭。
*/
void onWhiteboardStop();
/**
* 收到白板消息。
* @param message 白板消息
*/
void onWhiteboardMessage(String message);
/**
* 白板内容消息集合
* @param messages 白板消息集合
*/
void onWhiteboardMessages(ArrayList<String> messages);
/**
* 批注准备就绪
*/
void onAnnotationSending();
}
发送白板数据。
参数:
public void sendWhiteboardData(String data)
开启批注。
public void startAnnotation()
关闭批注。
public void stopAnnotation()
发送批注数据。
参数:
public void sendAnnotationMessage(String data)
开始共享。
参数:
public void dualStreamStart(@ContentType int type, boolean allowAnnotation)
public @interface ContentType {
int CONTENT_TYPE_PICTURE = 3; //分享图片
int CONTENT_TYPE_SCREEN = 0; //分享屏幕
int CONTENT_TYPE_SCREEN_WITH_AUDIO = 1; //分享屏幕&声音
}
结束共享。
参数:
public void dualStreamStop(@ContentType int type)
public @interface ContentType {
int CONTENT_TYPE_PICTURE = 3; //分享图片
int CONTENT_TYPE_SCREEN = 0; //分享屏幕
int CONTENT_TYPE_SCREEN_WITH_AUDIO = 1; //分享屏幕&声音
}
设置人脸识别开关。
参数:
public void enableFaceRecognize(boolean enable)
设置广播电子铭牌开关。
参数:
public void enableElectronicBadge(boolean enable)
设置人脸识别模式状态。
参数:
public void enabledFaceDetectType(@FaceDetectType int type, boolean enable)
获取单个人脸信息。
参数:
public Observable<FaceInfo> getFaceInfo(long faceId)
获取多个人脸信息。
参数:
public Observable<List<FaceInfo>> getMultiFaceInfo(long[] faceIds)
获取视频通话的统计信息。
public NewStatisticsInfo getStatisticsInfo()
获取本地视频源的图像信息, 返回图像的字节数组。
public byte[] getLocalVideoData()
提交反馈日志。
参数:
public void sendFeedbackLog(String comment)
对调用 rest 请求 接口签名,返回签名字符串。
参数:
public static String signUrl(String method, String url, String body, String extId, String token)
设置省流量模式。
参数:
public void setSaveNetMode(boolean isSaveNetMode)