语音消息
用户可以通过 IMKit 内置的输入组件录制并发送语音消息。消息将出现在会话页面的消息列表组件中。SDK 默认生成和发送的消息包含高清语音消息内容对象 HQVoiceMessage
(类型标识:RC:HQVcMsg
)。
局限性
语音输入功能目前存在以下限制:
- IMKit 仅单聊会话和群聊会话支持发送语音消息。
- 用户必须录制至少为 1 秒的音频内容,且必须短于 60 秒钟。
- 用户在录制语音消息时无法暂停。
- 正在视频通话和语音通话中不能进行语音消息发送。
用法
IMKit 默认在输入栏组件中启用语音消息输入功能。输入栏中默认带有切换语音输入按钮。
发送语音消息
默认情况下,语音消息图标显示在输入字段的左侧。点击此图标后,就会出现录制按钮(“按住说话”)。用户可以通过点击录制按钮来录制语音消息。长度必须至少为一秒且短于 60 秒钟。如果在点击停止按钮之前消息不到一秒,则不会保存该消息。录制过程中可以上滑取消录制或放弃取消。一旦松开按钮,SDK 默认发送到目前为止录制的内容。不支持在发送语音消息之前预览。在播放语音消息中的音频文件时不可暂停。
消息列表中的语音消息
您可以在单聊会话、群聊会话、系统会话中接收语音消息。语音消息显示在消息列表中。
用户可以通过点击播放按钮查看和播放语音消息。未播放的语音消息旁边会显示一个红点,消息可多次播放。但是,用户只能在客户端应用程序中收听语音消息,并且无法将其保存到自己的设备中。您在频道中一次只能收听一条音频文件。如果您在收听消息时尝试播放另一条消息,则先播放的消息将暂停。
IMKit 默认下载高清语音消息,并且默认点击播放后,不会连续播放消息下方未收听的语音消息。
定制化
自定义语音消息的 UI
语音消息使用 HQVoiceMessageItemProvider
模板展示在消息列表中。
如果需要调整内置消息样式,需继承 BaseMessageItemProvider<HQVoiceMessage>
自行实现消息展示模板类,详见自定义Provider。
调用下面的接口将该自定义模板提供给 SDK,objectName
传 HQVoiceMessageObjectName
。
import { HQVoiceMessageObjectName, RongIM } from "@rongcloud/imkit";
// 注册自定义文件消息 provider 给 IMKit
RongIM.getInstance().conversationService().addMessageItemProvider(HQVoiceMessageObjectName, new CustomHQVoiceMessageItemProvider())