首先我们需要申请Android MeetingKit Zip包,并解压缩到本地目录。
将libs/android_xysdk_3.x.xx.aar 文件拷贝至项目libs目录下, 添加aar引用.
android {
defaultConfig
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
dataBinding {
enabled = true
}
}
dependencies {
implementation(name: 'android_xysdk_xx_xx', ext: 'aar')
}
增加功能运行所需要的权限.
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.POST_NOTIFICATIONS"
android:minSdkVersion="33" />
<uses-permission
android:name="android.permission.READ_MEDIA_AUDIO"
android:minSdkVersion="33" />
<uses-permission
android:name="android.permission.READ_MEDIA_VIDEO"
android:minSdkVersion="33" />
<uses-permission
android:name="android.permission.READ_MEDIA_IMAGES"
android:minSdkVersion="33" />
<uses-permission
android:name="android.permission.WRITE_MEDIA"
android:minSdkVersion="33" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
XYRTCEngineEventHandler eventHandler = new XYRTCEngineEventHandler() {
@Override
public void onSDKInitSuccess() {
super.onSDKInitSuccess();
}
@Override
public void onSDKInitFail(String errorCode, String reason) {
super.onSDKInitFail(errorCode, reason);
}
};
Settings settings = new Settings.Builder()
.setExtId(enterpriseId) //企业ID
.setClientId(clientId) //
.setClientSecret(clientSecret) //
.setUiNeedSpeakers(true) //会中发言
.setVideoConfig(VideoConfig.VD_1280x720)
.setHost(server)
.setPort(port)
//... 多个设置项
.build();
XYRTCEngine.getInstance().create(context, settings, eventHandler);
XYRTCEngineEventHandler eventHandler = new XYRTCEngineEventHandler() {
@Override
public void onLoginFail(String errorCode, String reason) {
super.onLoginFail(errorCode, reason);
//登录失败
}
@Override
public void onLoginSuccess(UserInfo userInfo) {
super.onLoginSuccess(userInfo);
//登录成功
}
};
//注册登录回调
XYRTCEngine.getInstance().addHandler(eventHandler);
//登录
XYRTCEngine.getInstance().loginExternalAccount(String externalUserId, String displayName);
//登录完成,反注册登录回调
XYRTCEngine.getInstance().removeHandler(eventHandler);
1. 普通入会只需要配置音视频状态、会议号、会议密码、等参数.
String number = "xxxx"; //会议号
String password = ""; //入会密码
boolean micMute = true; //麦克风状态
boolean videoMute = true; //摄像头状态
XYMeetingKit.joinMeeting(activity, number, password, videoMute, micMute);
2. 自定义多属性配置入会
CallMeetingParam meetingParam = new CallMeetingParam();
meetingParam.setConferenceNo("xxx"); //会议号
meetingParam.setMeetingPwd("xxx");//入会密码
// ....设置多种参数
MeetingKitCallback meetingKitCallback = new MeetingKitCallback() {
@Override
public UserInfo getUserInfo() {
//用户信息
return null;
}
@Override
public MeetingKitUiConfig getMeetingKitUiConfig() {
//自定义ui配置
return null;
}
// ....实现自定义回调
};
MeetingKitEngine meetingKitEngine = new MeetingFactory().get(activity);
meetingKitEngine.setMeetingCallback(meetingKitCallback);
meetingKitEngine.startMeeting(activity, meetingParam);
3. 会外来电入会
XYRTCEngineEventHandler eventHandler= new XYRTCEngineEventHandler() {
@Override
public void onMeetingInvited(InvitationInfo info) {
super.onMeetingInvited(info);
XYMeetingKit.joinMeeting(activity, info);
}