小视频消息
小视频消息
用户可以通过 IMKit 图库(本地相册)或小视频插件发送小视频消息。消息将出现在会话页面的消息列表组件中。插件默认发送的消息包含小视频消息内容对象 RCSightMessage(类型标识:RC:SightMsg
)。


局限性
小视频功能目前存在以下限制:
- IMKit 仅单聊会话和群聊会话支持发送小视频消息。
- 如果使用小视频插件进行录制,支持录制长度不超过 10 秒的小视频。
- 如果从本地相册中选择视频文件,请注意服务端的默认视频时长上限为 2 分钟。如需调整上限,请联系商务。
- 仅支持
H.264
+AAC
编码的视频文件,因为 IMKit 的短视频录制、播放只实现了该编码组合的支持。 - 如果 App Key 使用 IM 旗舰版或 IM 尊享版,文件存储时长默认为 180 天(不含小视频文件,小视频文件存储 7 天)。注意,IM 商用版(已下线)默认存储 7 天。如需了解IM 旗舰版或 IM 尊享版的具体功能与费用,请参见融云官方价格说明页面及计费说明。
用法
建议通过集成 IMKit 小视频插件使用小视频消息功能。
集成小视频插件
IMKit 的小视频插件实现了小视频消息的消息注册、录制、播放等功能。集成小视频模块后,在单聊、群组会话输入区域的扩展面板中自动出现发送小视频消息的入口。
请根据应用程序集成 IMKit 的方式,选择使用 Framework 和源码导入小视频插件。请务必不要混用 Framework 和源码集成方式。
导入小视频插件 Framework
pod 'RongCloudIM/Sight','~> x.y.z' #小视频
已复制1导入小视频插件源码
pod 'RongCloudOpenSource/Sight','~> x.y.z' #小视频
已复制1
x.y.z 代表具体版本,请通过融云官网 SDK 下载页面或 CocoaPods 仓库等方式查询最新版本。
从本地相册选择小视频
前提条件:集成 IMKit 小视频插件后,插件内部会向 IMLib 注册(RCSightMessage)类型的消息。请先集成 IMKit 小视频插件,再进行以下配置,否则 SDK 无法识别小视频消息。
通过 IMKit 输入区域中的照片插件打开本地相册时,默认不包含视频文件,用户无法选择视频文件进行发送。
您可以修改全局配置,设置在本地相册中包含视频文件。
//设为选择媒体资源时包含视频文件
RCKitConfigCenter.message.isMediaSelectorContainVideo = YES;
已复制
1
2
如果您的项目中不使用 IMKit 小视频插件,但仍希望支持从本地发送小视频文件,请自行向 IMLib 注册 RCSightMessage
,否则 SDK 无法发送小视频消息。您还需要自行实现小视频录制、播放(在会话页面消息点击事件中处理播放)功能。如果 IMKit ≧ 5.2.4,重写会话页面的 registerCustomCellsAndMessages
方法,注册消息类型同时绑定展示模板。
- (void)registerCustomCellsAndMessages {
[super registerCustomCellsAndMessages];
///注册自定义测试消息Cell
[self registerClass:[RCSightMessageCell class] forMessageClass:[RCSightMessage class]];
}
已复制
1
2
3
4
5
详见修改消息的展示样式。
发送小视频消息
用户点击输入栏右侧 +
号按钮可展开扩展面板,点击照片或拍摄图标,即可发送小视频消息。

定制化
调整小视频压缩质量
小视频文件会被压缩为分辨率 544 * 960
的文件。小视频首帧画面会被用于生成缩略图,在聊天界面中展示。SDK 默认以原图 30% 质量生成符合标准大小要求的缩略图后再上传和发送,缩略图最长边不超过 240 px。
一般情况下不建议修改 SDK 默认压缩配置。如需调整 SDK 压缩质量,详见知识库文档如何修改 SDK 默认的图片与视频压缩配置。
自定义小视频消息的 UI
IMKit 默认生成和发送小视频消息(RC:SightMsg
),使用 RCFileMessageCell
展示在消息列表中。如果需要调整内置消息样式,建议自定义消息 Cell,并将该自定义 Cell 提供给 SDK。
IMKit 中所有消息模板都继承自 RCMessageCell
,自定义消息 Cell 也需要继承 RCMessageCell
。详见修改消息的展示样式。
您也可以直接替换 RongCloud.bundle
中小视频消息展示模板中引用的样式资源、字符串资源和图标资源。详见 IMKit 源码 RCSightMessageCell.m 中引用的资源。
如果希望修改录制、播放 UI,可以参考 IMKit 小视频插件源码 Sight。
动态隐藏小视频入口
如需动态修改,可在会话页面显示前,通过 RCConversationViewController 的 chatSessionInputBarControl.pluginBoardView
删除指定扩展项目。
详见输入区域。