小视频消息
用户可以通过 IMKit 图库(本地相册)或小视频插件发送小视频消息。消息将出现在会话页面的消息列表组件中。插件默认发送的消息包含小视频消息内容对象 SightMessage(类型标识:RC:SightMsg
)。
局限性
小视频功能目前存在以下限制:
- IMKit 仅单聊会话和群聊会话支持发送小视频消息。
- 如果使用小视频插件进行录制,支持录制长度不超过 10 秒的小视频。
- 如果从本地相册中选择视频文件,请注意服务端的默认视频时长上限为 2 分钟。如需调整上限,请联系商务。
- 仅支持
H.264
+AAC
编码的视频文件,因为 IMKit 的短视频录制、播放只实现了该编码组合的支持。 - 如果 App Key 使用 IM 旗舰版或 IM 尊享版,文件存储时长默认为 180 天(不含小视频文件,小视频文件存储 7 天)。注意,IM 商用版(已下线)默认存储 7 天。如需了解IM 旗舰版或 IM 尊享版的具体功能与费用,请参见融云官方价格说明页面及计费说明。
用法
建议通过集成 IMKit 小视频插件使用小视频消息功能。
集成小视频插件
IMKit 的小视频插件实现了小视频消息的消息注册、录制、播放等功能。集成小视频模块后,在单聊、群组会话输入区域的扩展面板中自动出现发送小视频消息的入口。
-
在应用的
build.gradle
文件中增加对小视频的依赖。Groovydependencies{
// 插件版本需要与主 SDK 版本保持一致。
api 'cn.rongcloud.sdk:sight:x.y.z'
}
各个 SDK 的最新版本号可能不相同,还可能是 x.y.z.h,可前往 融云官网 SDK 下载页面 或 融云的 Maven 代码库 查询。
-
通过
RongExtensionManager
,向 IMKit 的输入区域RongExtension
中注册小视频模块SightExtensionModule
。小视频模块会向 IMLib 注册SightMessage
,并向扩展面板中添加小视频插件SightPlugin
。JavaRongExtensionManager.getInstance().registerExtensionModule(new SightExtensionModule());
从本地相册选择小视频
前提条件:集成 IMKit 小视频插件后,插件内部会向 IMLib 注册(SightMessage)类型的消息。请先集成 IMKit 小视频插件,再进行以下配置,否则 SDK 无法识别小视频消息。
通过 IMKit 输入区域中的图库插件 ImagePlugin
打开本地相册时,默认不包含视频文件,用户无法选择视频文件进行发送。
您可以修改全局配置,设置在本地相册中包含视频文件。
RongConfigCenter.featureConfig().rc_media_selector_contain_video = true;
如果通过 XML 资源修改 IMKit 默认配置,可在应用 res/values
目录下创建 rc_config.xml
文件,添加以下配置:
<bool name="rc_media_selector_contain_video">true</bool>
如果您的项目中不使用 IMKit 小视频插件,但仍希望支持从本地发送小视频文件,请自行向 IMLib 注册 SightMessage
,否则 SDK 无法发送小视频消息。您还需要自行实现小视频录制、播放(在会话页面消息点击事件中处理播放)功能。
// 注册 SightMessage,必须在连接之前处理
RongIMClient.registerMessageType(SightMessage.class);
发送小视频消息
用户点击输入栏右侧 +
号按钮可展开扩展面板,点击图片或小视频图标,即可发送小视频消息。
定制化
修改小视频文件保存位置
客户端接收小视频消息后,在会话页面中长按保存时,SDK 默认保存到 /RongCloud/Video/
下。您可以在应用程序目录下创建 res/values/rc_config
文件,全局修改默认保存位置:
<string name="rc_file_default_saved_path">/RongCloud/Video/</string>