{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671508943301,"data":{"id":71713794,"title":"9.9.4 聊天消息相关","slug":"iwb4td","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
本章节主要涉及聊天服务消息相关接口介绍
int com.autonavi.gbl.user.chat.ChatService.loadHistoryMsg(String chatId, String msgId, int count);
int com.autonavi.gbl.user.chat.ChatService.sendAimAudioMsg(AimAudioMsg message);
String chatId = UserGroupController.getInstance().getGroupChatId(); // 聊天室ID\nString curMsgId = mTeamSpeakingAdapter.getLoadPreMsgId(); // 获取最早的消息ID, 当前消息列表为空该字段传空,从最新消息拉取\n\nmChatService.loadHistoryMsg(chatId, curMsgId, 20);\n\n// 拉取消息回调\nprivate ChatServiceObserver chatObserver = new ChatServiceObserver() {\n @Override\n public void onLoadPreAimMsgList(final AimMsgList aimMsgList) {\n TaskManager.post(new Runnable() {\n @Override\n public void run() {\n hasMore = aimMsgList.hasMore; // 是否拉取到最早消息\n if(!hasMore) {\n mMvpView.setRefreshTips();\n }\n // 刷新消息列表\n refreshGroupMsgList(aimMsgList.data, true);\n mMvpView.stopSyncRefresh();\n }\n });\n }\n};
\nAimAudioMsg newMsg = new AimAudioMsg();\nnewMsg.chatId = UserGroupController.getInstance().getGroupChatId(); // 聊天室ID\nnewMsg.localPath = ""; // 语音文件完整路径\nnewMsg.duration = 5000; // 语音时长 单位:毫秒\nnewMsg.audioType = AudioType.AudioTypeAMR; // 语音文件类型\n\nint serialId = mChatService.sendAimAudioMsg(newMsg);\nif (serialId > 0) {\n // 发请求成功,保存serialId 可用于区分并行发送时回调\n}\n\n// 发送语音消息回调\nprivate ChatServiceObserver chatObserver = new ChatServiceObserver() {\n @Override\n public void onSendMessage(final AimSendStatus aimSendStatus) {\n TaskManager.post(new Runnable() {\n @Override\n public void run() {\n Logger.d(TAG, "onNewAimMsgList", "msgList:" + aimSendStatus.progress);\n if (aimSendStatus.progress >= 1.0) {\n if (null != aimSendStatus.msgData) {\n isOnRefresh=false;\n ArrayList<AimMsgBase> msgList = new ArrayList<>();\n msgList.add(aimSendStatus.msgData);\n refreshGroupMsgList(msgList, false);\n }\n }\n }\n });\n }\n};
// 发送语音消息回调\nprivate ChatServiceObserver chatObserver = new ChatServiceObserver() {\n @Override\n public void onNewAimMsgList(final AimMsgList aimMsgList) {\n TaskManager.post(new Runnable() {\n @Override\n public void run() {\n Logger.d(TAG, "onNewAimMsgList", "msgList:" + aimMsgList.data.size());\n isOnRefresh=false;\n refreshGroupMsgList(aimMsgList.data, false);\n }\n });\n }\n};
private ChatServiceObserver chatObserver = new ChatServiceObserver() {\n @Override\n public void onRecallAimMsg(final AimMsgList aimMsgList) {\n TaskManager.post(new Runnable() {\n @Override\n public void run() {\n Logger.d(TAG, "onRecallAimMsg", "msgList:" + aimMsgList.data.size());\n isOnRefresh=false;\n refreshGroupMsgList(aimMsgList.data, false);\n }\n });\n }\n};