小视频消息
用户可以通过 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
rubypod 'RongCloudIM/Sight','~> x.y.z' #小视频
-
导入小视频插件源码
rubypod 'RongCloudOpenSource/Sight','~> x.y.z' #小视频
x.y.z 代表具体版本,请通过融云官网 SDK 下载页面或 CocoaPods 仓库等方式查询最新版本。
不集成小视频插件
如果您的项目中不使用 IMKit 小视 频插件,但仍希望支持从本地发送小视频文件,请自行向 IMLib 注册 RCSightMessage
,否则 SDK 无法发送小视频消息。您还需要自行实现小视频录制、播放(在会话页面消息点击事件中处理播放)功能。如果 IMKit ≧ 5.2.4,重写会话页面的 registerCustomCellsAndMessages
方法,注册消息类型同时绑定展示模板。
- (void)registerCustomCellsAndMessages {
[super registerCustomCellsAndMessages];
///注册自定义测试消息Cell
[self registerClass:[RCSightMessageCell class] forMessageClass:[RCSightMessage class]];
}
详见修改消息的展示样式。
从本地相册选择小视频
前提条件:集成 IMKit 小视频插件后,插件内部会向 IMLib 注册(RCSightMessage)类型的消息。请先集成 IMKit 小视频插件,再进行以下配置,否则 SDK 无法识别小视频消息。
通过 IMKit 输入区域中的照片插件打开本地相册时,默认不包含视频文件,用户无法选择视频文件进行发送。
您可以修改全局配置,设置在本地相册中包含视频文件。
//设为选择媒体资源时包含视频文件
RCKitConfigCenter.message.isMediaSelectorContainVideo = YES;
发送小视频消息
用户点击输入栏右侧 +
号按钮可展开扩展面板,点击照片或拍摄图标,即可发送小视频消息。
定制化
调整小视频压缩质量
小视频文件会被压缩为分辨率 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