# NIM_Android_AVChatKit **Repository Path**: johnnyyangxiao/NIM_Android_AVChatKit ## Basic Information - **Project Name**: NIM_Android_AVChatKit - **Description**: 网易云信Android音视频组件源码仓库 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-06-25 - **Last Updated**: 2023-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AVChatKit 使用说明 ## 全局配置项 AVChatOptions AVChatKit 组件提供了全局配置类 AVChatOptions,初始化 AVChatKit 时传入 AVChatOptions 对象。 |类型|AVChatOptions 属性|说明| |:---|:---|:---| |Class|entranceActivity|通知入口| |int|notificationIconRes|通知栏icon| |void|logout(Context context)|被踢出时,调用的方法| ## 初始化 在应用的 Application 的 **主进程** 中初始化 AVChatKit。 ```java AVChatOptions avChatOptions = new AVChatOptions(){ @Override public void logout(Context context) { // 主程序登出操作 } }; // 点击通知栏,入口Activity avChatOptions.entranceActivity = WelcomeActivity.class; // 通知栏图标icon avChatOptions.notificationIconRes = R.drawable.ic_stat_notify_msg; // 初始化 AVChatKit AVChatKit.init(avChatOptions); ``` - 示例 ```java AVChatOptions avChatOptions = new AVChatOptions(){ @Override public void logout(Context context) { MainActivity.logout(context, true); } }; avChatOptions.entranceActivity = WelcomeActivity.class; avChatOptions.notificationIconRes = R.drawable.ic_stat_notify_msg; AVChatKit.init(avChatOptions); // 初始化日志系统 LogHelper.init(); // 设置用户相关资料提供者 AVChatKit.setUserInfoProvider(new IUserInfoProvider() { @Override public UserInfo getUserInfo(String account) { return NimUIKit.getUserInfoProvider().getUserInfo(account); } @Override public String getUserDisplayName(String account) { return UserInfoHelper.getUserDisplayName(account); } }); // 设置群组数据提供者 AVChatKit.setTeamDataProvider(new ITeamDataProvider() { @Override public String getDisplayNameWithoutMe(String teamId, String account) { return TeamHelper.getDisplayNameWithoutMe(teamId, account); } @Override public String getTeamMemberDisplayName(String teamId, String account) { return TeamHelper.getTeamMemberDisplayName(teamId, account); } }); ``` AVChatKit 中用到的 Activity 已经在 AVChatKit 工程的 AndroidManifest.xml 文件中注册好,上层 APP 无需再去添加注册。 ## 快速使用 ### 发起点对点音视频通话呼叫 - API 原型 ```java /** * 发起音视频通话呼叫 * @param context 上下文 * @param account 被叫方账号 * @param displayName 被叫方显示名称 * @param callType 音视频呼叫类型 * @param source 发起呼叫的来源,参考AVChatActivityEx.FROM_INTERNAL/FROM_BROADCASTRECEIVER */ public static void outgoingCall(Context context, String account, String displayName, int callType, int source); ``` - 参数介绍 |参数|说明| |:---|:---| |context |上下文| |account |被叫方账号| |displayName |被叫方显示名称| |callType |音视频呼叫类型| |source |发起呼叫的来源,参考AVChatActivityEx.FROM_INTERNAL/FROM_BROADCASTRECEIVER| - 示例 ```java AVChatKit.outgoingCall(context, "testAccount", "displayName" AVChatType.AUDIO, AVChatActivity.FROM_INTERNAL); ``` ### 发起群组音视频通话呼叫 - API 原型 ```java /** * 发起群组音视频通话呼叫 * @param context 上下文 * @param receivedCall 是否是接收到的来电 * @param teamId team id * @param roomId 音视频通话room id * @param accounts 音视频通话账号集合 * @param teamName 群组名称 */ public static void outgoingTeamCall(Context context, boolean receivedCall, String teamId, String roomId, ArrayList accounts, String teamName); ``` - 参数说明 |参数|说明| |:---|:---| |context |上下文| |receivedCall |是否是接收到的来电| |teamId |team id| |roomId |音视频通话 room id| |accounts |音视频通话账号集合| |teamName |群组名称| - 示例 ```java // 以下参数为示例 AVChatKit.outgoingTeamCall(context, false, "1111", "roomName", accounts, "teamName"); ``` ### 打开网络通话设置界面 - API 原型 ```java /** * 打开网络通话设置界面 * @param context 上下文 */ public static void startAVChatSettings(Context context); ``` - 示例 ```java AVChatKit.startAVChatSettings(SettingsActivity.this); ```