产品 / 插件:文件共享
平台 / 框架:iOS / Android
更新时间:2021-11-18 16:02
文件转码失败,可能有以下原因:
加载文件时返回的 2030010 错误码表示找不到服务器上的文件,可能有以下原因:
加载文件时返回的 2030004 错误码表示没有获取到当前 ZegoDocsView
有效的宽度和高度,原因如下:
文件共享 SDK 在加载 ZegoDocsView
时,需要读取到该 View 的有效宽度和高度,以执行文件图片的切片工作。如果 SDK 加载时拿不到有效的宽度和高度,就会报错并抛出这个错误码。
文件共享 SDK 不支持由 WPS 保存的文件,请确保您的文件是用 Microsoft Office 生成的。
请确保您的文件时可编辑的:没有“只读”属性;没有经过加密;文件里包含的图片内容没有受损,可以在电脑中正常展示。
如果您的文件类型是 图片 且在 Microsoft Office PPT 中导入正常,但无法转为 PDF,可通过如下步骤判断失败原因和处理:
https://docservice.zego.im/doc/del_file
主动删除了已经上传到云端的文件。Android
因为 ZegoDocsView
获取宽高时,View
的绘制还未完成,此时存在时序问题。所以在 Android
中,一种常用的做法是以 Handler
为基础,调用 View.post()
将传入任务的执行时机调整到 View 绘制完成之后,从而能够确保获取到 View
有效的宽高。
具体详细的使用方式可以在示例demo中参考。示例代码如下图所示:
ZegoDocsView zegoDocsView = new ZegoDocsView(this);
zegoDocsView.post(new Runnable() {
@Override
public void run() {
zegoDocsView.loadFile("xxxxxx", "", new IZegoDocsViewLoadListener() {
@Override
public void onLoadFile(int errorCode) {
if (errorCode == 0) {
// 加载文件成功
} else {
// 加载文件失败
}
}
});
}
});
iOS 在初始化的时候设置宽高,即可解决。
ZegoDocsView * docsView = [[ZegoDocsView alloc] init];
//设置一个非0的宽高
[docsView setFrame:CGRectMake(0, 0, 1280, 720)];
[docsView loadFileWithFileID:@"xxx" authKey:@"" completionBlock:^(ZegoDocsViewError errorCode) {
if (errorCode == 0) {
// 加载文件成功
} else {
// 加载文件失败
}
}];
在界面刚初始化时拿不到有效的宽度和高度,ZegoDocsView
提供了一个接口 setEstimatedSize
用于传入一个当前view的估计值,从而确保 loadFile
能够成功。
Android 示例代码
ZegoDocsView zegoDocsView = new ZegoDocsView(this);
zegoDocsView.setEstimatedSize(1280, 720);
zegoDocsView.loadFile("xxx", "", new IZegoDocsViewLoadListener() {
@Override
public void onLoadFile(int errorCode) {
if (errorCode == 0) {
// 加载文件成功
} else {
// 加载文件失败
}
}
});
iOS 示例代码
ZegoDocsView * docsView = [[ZegoDocsView alloc] init];
//不确定view的宽高的时候可以设置一个预估值
[docsView setEstimatedSize:CGSizeMake(1280, 720)];
[docsView loadFileWithFileID:@"xxx" authKey:@"" completionBlock:^(ZegoDocsViewError errorCode) {
if (errorCode == 0) {
// 加载文件成功
} else {
// 加载文件失败
}
}];
联系我们
文档反馈