xiongzhu 9527bc7f95 个人中心改版 7 anos atrás
..
.settings 3381f737f8 first commit 7 anos atrás
src 9527bc7f95 个人中心改版 7 anos atrás
.classpath 3381f737f8 first commit 7 anos atrás
.project 3381f737f8 first commit 7 anos atrás
README.md 3381f737f8 first commit 7 anos atrás
build.gradle 9527bc7f95 个人中心改版 7 anos atrás
proguard-rules.pro 3381f737f8 first commit 7 anos atrás

README.md

AVChatKit 使用说明

全局配置项 AVChatOptions

AVChatKit 组件提供了全局配置类 AVChatOptions,初始化 AVChatKit 时传入 AVChatOptions 对象。

类型 AVChatOptions 属性 说明
Class<? extends Activity> entranceActivity 通知入口
int notificationIconRes 通知栏icon
void logout(Context context) 被踢出时,调用的方法

初始化

在应用的 Application 的 主进程 中初始化 AVChatKit。

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);
  • 示例

    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 原型

    /**
    * 发起音视频通话呼叫
    * @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
  • 示例

    AVChatKit.outgoingCall(context, "testAccount", "displayName" AVChatType.AUDIO, AVChatActivity.FROM_INTERNAL);
    

发起群组音视频通话呼叫

  • API 原型

    /**
    * 发起群组音视频通话呼叫
    * @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<String> accounts, String teamName);
    
  • 参数说明

参数 说明
context 上下文
receivedCall 是否是接收到的来电
teamId team id
roomId 音视频通话 room id
accounts 音视频通话账号集合
teamName 群组名称
  • 示例

    // 以下参数为示例
    AVChatKit.outgoingTeamCall(context, false, "1111", "roomName", accounts, "teamName");
    

打开网络通话设置界面

  • API 原型

    /**
    * 打开网络通话设置界面
    * @param context   上下文
    */
    public static void startAVChatSettings(Context context);
    
  • 示例

    AVChatKit.startAVChatSettings(SettingsActivity.this);