跳到主要内容

小视频消息

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

(width=250) (width=250)

局限性

小视频功能目前存在以下限制:

  • 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'           #小视频
  • 导入小视频插件源码

    pod 'RongCloudOpenSource/Sight','~> x.y.z'           #小视频
提示

x.y.z 代表具体版本,请通过融云官网 SDK 下载页面或 CocoaPods 仓库等方式查询最新版本。

从本地相册选择小视频

提示

前提条件:集成 IMKit 小视频插件后,插件内部会向 IMLib 注册(RCSightMessage)类型的消息。请先集成 IMKit 小视频插件,再进行以下配置,否则 SDK 无法识别小视频消息。

通过 IMKit 输入区域中的照片插件打开本地相册时,默认不包含视频文件,用户无法选择视频文件进行发送。

您可以修改全局配置,设置在本地相册中包含视频文件。

//设为选择媒体资源时包含视频文件
RCKitConfigCenter.message.isMediaSelectorContainVideo = YES;

如果您的项目中不使用 IMKit 小视频插件,但仍希望支持从本地发送小视频文件,请自行向 IMLib 注册 RCSightMessage,否则 SDK 无法发送小视频消息。您还需要自行实现小视频录制、播放(在会话页面消息点击事件中处理播放)功能。如果 IMKit ≧ 5.2.4,重写会话页面的 registerCustomCellsAndMessages 方法,注册消息类型同时绑定展示模板。

- (void)registerCustomCellsAndMessages {
[super registerCustomCellsAndMessages];
///注册自定义测试消息Cell
[self registerClass:[RCSightMessageCell class] forMessageClass:[RCSightMessage class]];
}

详见修改消息的展示样式

发送小视频消息

用户点击输入栏右侧 + 号按钮可展开扩展面板,点击照片拍摄图标,即可发送小视频消息。

extension(width=250)

定制化

调整小视频压缩质量

小视频文件会被压缩为分辨率 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

动态隐藏小视频入口

如需动态修改,可在会话页面显示前,通过 RCConversationViewControllerchatSessionInputBarControl.pluginBoardView 删除指定扩展项目。

详见输入区域