提交工单
咨询集成、功能及报价等问题
本文主要介绍如何管理要共享的文件。
调用 ZegoSuperBoardManager 的上传文件方法上传文件到 ZEGO 文件云服务,上传成功后会获取该文件的 fileID,开发者可以调用 ZegoSuperBoardManager 的 createFileView 接口,传入 ZegoCreateFileConfig 加载该文件。
文件上传分为上传 ZegoSuperBoardUploadFileState.Upload 和格式转换 ZegoSuperBoardUploadFileState.Convert 两个阶段。
{"upload_percent":0.50}
;当前上传 100%,则 "infoMap" 内容为 {"upload_percent":1.00}
。{"upload_fileid":"ekxxxxxxxxv"}
。上传的文件必须满足相应的规范:
全部规范请参考 文件规范。
调用 uploadFile 方法上传普通文件。
// filePath 待上传文件的绝对路径
String filePath = "";
ZegoSuperBoardRenderType renderType = ZegoSuperBoardRenderType.IMG;//例如转换成image格式
ZegoSuperBoardManager.getInstance().uploadFile(filePath, renderType, new IZegoSuperBoardUploadFileListener() {
@Override
public void onUpload(ZegoSuperBoardUploadFileState state, int errorCode, @NonNull HashMap<String, Object> infoMap) {
if (errorCode == ZegoSuperBoardError.ZegoSuperBoardSuccess) {
if (state == ZegoSuperBoardUploadFileState.Upload) {
// 上传中...
float uploadPercent = (float) infoMap.get("upload_percent");
if (uploadPercent == 1f){
/** 正在转码... */
}
} else if (state == ZegoSuperBoardUploadFileState.Convert){
/** 转换成功 */
String fileID = (String) infoMap.get(ZegoSuperBoardError.UPLOAD_FILEID);
}
} else {
/** 上传失败 */
}
}
});
通过 ZegoUploadCustomH5Config 设置上传 H5 文件的配置参数,并调用 uploadH5File 方法上传 H5 文件。
String filePath = "";
ZegoUploadCustomH5Config mH5Config = new ZegoUploadCustomH5Config();
mH5Config.height = 960;
mH5Config.width = 540;
mH5Config.pageCount = 5;
ZegoSuperBoardManager.getInstance().uploadH5File(filePath, mH5Config, new IZegoSuperBoardUploadFileListener() {
@Override
public void onUpload(ZegoSuperBoardUploadFileState state, int errorCode, @NonNull HashMap<String, Object> infoMap) {
if (errorCode == ZegoSuperBoardError.ZegoSuperBoardSuccess) {
if (state == ZegoSuperBoardUploadFileState.Upload) {
// 上传中...
float uploadPercent = (float) infoMap.get("upload_percent");
if (uploadPercent == 1f){
/** 正在转码... */
}
} else if (state == ZegoSuperBoardUploadFileState.Convert){
/** 转换成功 */
String fileID = (String) infoMap.get(ZegoSuperBoardError.UPLOAD_FILEID);
}
} else {
/** 上传失败 */
}
}
});
调用 cacheFile 方法将文件缓存到本地。
int seq = ZegoSuperBoardManager.getInstance().cacheFile(fileID, new IZegoSuperBoardCacheFileListener() {
@Override
public void onCache(ZegoSuperBoardCacheFileState state, int errorCode, @NonNull HashMap<String, Object> infoMap) {
if (errorCode == ZegoSuperBoardError.ZegoSuperBoardSuccess) {
if (state == ZegoSuperBoardCacheFileState.Caching) {
float cachePercent = (float) infoMap.get("cache_percent") * (float) 100;
// 缓存中...
} else if (state == ZegoSuperBoardCacheFileState.Cached) {
// 缓存成功
}
} else {
// 缓存失败
}
}
});
调用 cancelCacheFile 方法取消掉正在缓存的文件。
// 保存从调用 cacheFile() 接口返回的 seq值
// 在取消缓存参数中用到
ZegoSuperBoardManager.getInstance().cancelCacheFile(seq, new IZegoSuperBoardApiCalledCallback() {
@Override
public void onApiCalledResult(int errorCode) {
// errorCode等于0,取消缓存成功
}
});
调用 queryFileCached 方法查询文件缓存是否存在。
// 通过fileID查询指定文件是否已经缓存过了
ZegoSuperBoardManager.getInstance().queryFileCached(fileID, new IZegoSuperBoardQueryFileCachedListener() {
@Override
public void onQueryCached(int errorCode, boolean fileCached) {
// fileCached 是否已有缓存
}
});
联系我们
文档反馈