描述
在使用 Android/iOS 客户端 IMLib/IMKit SDK 发送图片与小视频时,SDK 有以下默认行为:
- 图片消息的缩略图:SDK 会以原图 30% 质量生成符合标准大小要求的大图后再上传和发送。压缩后最长边不超过 240 px。缩略图用于在聊天界面中展示。
- 图片:发送消息时如未选择发送原图,SDK 会以原图 85% 质量生成符合标准大小要求的大图后再上传和发送。压缩后最长边不超过 1080 px。
- 小视频消息的缩略图:从小视频首帧画面生成缩略图,具体生成方式与图片缩略图相同。
- 小视频:压缩小视频文件为分辨率 544 * 960 的文件。
App 可能希望修改 SDK 默认的压缩配置。
分析(根因分析、需求分析)
一般不建议修改 SDK 默认配置。可能的负面影响如下:
- 上调缩略图质量会导致消息内容体增大。消息内容体超过 128 KB 限制后可能会发送失败。
- 上调原图或小视频压缩比例可能会导致文件过大,增加上传时长,导致发送缓慢。
解决方案
如需修改,请您在开发环境中充分测试修改后的效果。
Android 端修改方式
-
在应用目录下,新建配置文件:
/src/main/res/values/rc_configuration.xml
。 -
拷贝以下内容至新建的
rc_configuration.xml
文件中。<?xml version="1.0" encoding="utf-8"?> <resources> <!--图片压缩比例--> <integer name="rc_image_quality">85</integer> <!--图片压缩宽、高--> <integer name="rc_image_size">1080</integer> <!--配置发送图片时,如果图片大小不超过 200k 则发送原图--> <integer name="rc_max_original_image_size">200</integer> <!--图片与小视频的缩略图压缩比例--> <integer name="rc_thumb_quality">30</integer> <!--缩略图压缩宽、高--> <integer name="rc_thumb_compress_size">240</integer> <!--缩略图压缩最小宽、高--> <integer name="rc_thumb_compress_min_size">100</integer> <!--小视频压缩宽度,建议使用16的倍数--> <integer name="rc_sight_compress_width">544</integer> <!--小视频压缩高度,建议使用16的倍数--> <integer name="rc_sight_compress_height">960</integer> </resources>
iOS 端修改方式
修改 SDK 的配置文件:/imlibcore/RongIMLibCore/RCConfig.plist
。注意,SDK 升级后,该配置将被覆盖。
- 在
Image
Key 下可修改图片相关配置。 - 在
Sight
Key 下可修改小视频相关配置。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Location</key>
<dict>
<key>LocationImageQuality</key>
<real>0.7</real>
<key>LocationImageWidth</key>
<string>480</string>
<key>LocationImageHeight</key>
<string>240</string>
</dict>
<key>File</key>
<dict>
<key>RelativePath</key>
<string>Documents/MyFile</string>
<key>MaxRangeUnit</key>
<real>1048576</real>
</dict>
<key>Voice</key>
<dict>
<key>AudioEncodingBitRate</key>
<real>7950</real>
</dict>
<key>Image</key>
<dict>
<key>ThumbnailQuality</key>
<string>0.3</string>
<key>ThumbnailMaxSize</key>
<string>240</string>
<key>ThumbnailMinSize</key>
<string>100</string>
<key>ImageQuality</key>
<real>0.85</real>
<key>ImageWidth</key>
<integer>1080</integer>
<key>ImageHeight</key>
<integer>1080</integer>
</dict>
<key>CustomerService</key>
<dict>
<key>SuspendWhenLeave</key>
<true/>
</dict>
<key>Download</key>
<dict>
<key>DownloadSliceSize</key>
<real>20971520</real>
</dict>
<key>Sight</key>
<dict>
<key>SightCompressWidth</key>
<integer>540</integer>
<key>SightCompressHeight</key>
<integer>960</integer>
</dict>
</dict>
</plist>
更多支持
如有疑问,欢迎提交工单。