文件转码
  • 平台类型
  • 框架 / 引擎
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序

文件转码 API

更新时间:2020-10-24 00:45

1 ZegoDocsViewConstants

1.1 FileType

常量 取值 描述
ZegoDocsViewFileTypeUnknown 0 未知文档类型
ZegoDocsViewFileTypePPT 1 PowerPoint 文档
ZegoDocsViewFileTypeDOC 2 Word 文档
ZegoDocsViewFileTypeELS 4 Excel 文档
ZegoDocsViewFileTypePDF 8 PDF 文档
ZegoDocsViewFileTypeIMG 16 图片
ZegoDocsViewFileTypeTXT 32 文本文档
ZegoDocsViewFileTypeDynamicPPTH5 512 动态 PPT

1.2 Uploadstate

常量 取值 描述
ZegoDocsViewUploadStateUpload 1 上传中
ZegoDocsViewUploadStateConvert 2 格式转换中

1.3 RenderType

常量 取值 描述
ZegoDocsViewRenderTypeVector 1 Vector 向量模式,适用于文件共享 SDK PC 端、移动端做的文档智能转换,能够更换地支持文档浏览以及更清晰的缩放。
ZegoDocsViewRenderTypeIMG 2 IMG 图片模式,适用于文件共享 SDK Web 端、小程序使用的文档转换,按文件样式每一页都生成图片样式。
ZegoDocsViewRenderTypeVectorAndIMG 3 VectorAndIMG 向量和图片模式, 适用于当存在 Web 端、小程序、移动端、PC 端,多端的并存情况,在 web 端、小程序将使用 IMG 图片模式, 而 PC 端、移动端将使用 Vector 向量模式。
ZegoDocsViewRenderTypeDynamicPPTH5 6 DynamicPPTH5 动态 PPT 模式,适用于文件共享 SDK PC 端、移动端、Web 端、小程序使用的 PPT 文件转码格式,会将 PPT 文件转成动态 PPT 的 H5 文件。

2 ZegoDocsViewConfig Class

配置类,其属性用于初始化 ZegoDocsView SDK。

2.1 Properties

// ZEGO 为开发者签发的应用 ID,请从 ZEGO 管理控制台 申请,取指范围为 0 - 4294967295。

unsigned int appID
// 每个 appID 对应的应用签名,为 64 字符的字符串,每个字符范围为'0'~'9','a'~'z'。

// @note: 如果申请到的签名是字节数组(例如 0xa3, 0xb4, 0xc5, 0xd6, 0xe7 这种格式),请将 appSign 直接设置为 "0xa3, 0xb4, 0xc5, 0xd6, 0xe7",SDK 会自动解析,无需在 Java/Kotlin 中逐一做类型转换;如果申请到的签名是字符串(例如 a3b4c5d6e7 这种格式),请将appSign直接设置为这串字符串,SDK会自动解析。

NSString* appSign
// SDK 数据保存目录,根据需要设置沙盒路径。

NSString* dataFolder
// SDK 日志保存目录,记录 SDK 运行过程中的日志,便于定位问题。

// @note: 可以不设置,默认 log 路径为 dataFolder 下的 log 子目录
//请将路径设置与ZegoExpressEngine的日志路径一致,方能支持日志上传

NSString* logFolder
// SDK 缓存保存目录,点播加载过的文件,都会在此加密保存。

NSString* cacheFolder
// 是否在测试环境执行,该值默认为 false,为正式环境。

// @note: 请先在测试环境调试,联系技术支持在正式环境上线

BOOL isTestEnv

3 ZegoDocsViewManager Class

单例类,是 ZegoDocsView 的服务入口

3.1 Functions

// 用配置类的实例初始化 SDK
// @param config: 配置对象
// @param completionBlock: 初始化结果回调

- (void)initWithConfig:(ZegoDocsViewConfig *)config completionBlock:(ZegoDocsViewInitBlock)completionBlock);
// 设置用户自定义扩展内容,需要在initWithConfig方法之前调用
// @param value 自定义的文档域名等扩展内容. eg @"xxxx.com"
// @param key 自定义的文档域名等扩展内容对应的key. eg @"domain"
// @return 是否设置成功

- (BOOL)setCustomizedConfig:(NSString * _Nonnull)value

            key:(NSString * _Nonnull)key;
// 根据Key值获取指定的扩展内容
// @param key 扩展内容对应的key值
// @return key值对应的扩展内容

- (NSString *)getCustomizedConfigWithKey:(NSString * _Nonnull)key;
// 反初始化 SDK

- (void)uninit;
// 从客户端本地上传文件转码,并存储。 
// @param filePath: 待上传文件的本地路径
// @param renderType: 期望格式转换的类型,详见 ZegoDocsViewConstants
// @param completionBlock: 上传文件进度和结果回调

- (void)uploadFile:(NSString *)filePath renderType:(ZegoDocsViewRenderType)renderType completionBlock: (ZegoDocsViewUploadBlock)completionBlock);
// 计算缓存目录占用的空间大小。
// @return: 缓存目录占用空间大小,单位是字节

- (long)calculateCacheSize;
// 清除缓存目录。

- (void)clearCacheFolder;

4 ZegoDocsView Class

加载和渲染文件的视图类

4.1 Properties

获取当前视图对应的 fileID,与 loadFile 传入的 fileID 一致。

NSString*  fileID;
当前加载文档的类型,支持的文档类型列表详见 ZegoDocsViewConstants。

ZegoDocsViewFileType fileType;
当前视图视口中线位置所在的页码,页码从1开始。

NSInteger currentPage;
当前动态PPT当前页的动画步骤,动画步骤从1开始。

NSInteger currentStep;
当前已加载文件的总页数。

NSInteger pageCount;
当前纵向偏移(垂直滚动条)的百分比,取值范围 0.00 - 1.00。

CGFloat verticalPercent;
当前文件显示的宽高

CGSize visibleSize;
文档内容的宽高,根据当前设置的显示宽度得出的总高度

@property (nonatomic, assign, readonly) CGSize contentSize;
当前文件的名称

NSString * fileName;
Excel文件的sheet列表

NSArray <NSString *> *sheetNameList;

4.2 Functions

// 获取 PPT 指定页码的备注,仅对 PPT 类型的文件有效。
// @param page: 指定页码,从1开始
// @return: 指定页面对应的备注,若没有备注,则返回 null

- (NSString *_Nullable)pptNotesOfPage:(NSInteger)page;
// 设置通用 delegate

- (void)setDelegate: ( _Nullabel id <ZegoDocsViewDelegate>)delegate;
// 加载指定的文件,文件内容将被渲染到视图上。
// @param fileID: 目标文件的唯一 ID,在转换格式后得到该 ID,业务服务器需要建立文件 ID 与业务的联系,比如与一堂课联系,与某个人联系,与某个角色联系
// @param authKey: 业务服务与 ZegoDocs 服务约定算法生成的共享鉴权 key;如开启鉴权切鉴权失败,loadFile将失败;如未开启鉴权,该 key 可为空;
// @param completionBlock: 加载文件成功或者失败的回调
// @note: 在调用该函数前,需要保证能获取到视图的宽高(值大于0)

- (void)loadFileWithFileID:(NSString * Nonnull)fileID authKey:(NSString * Nonnull)authKey completionBlock:(ZegoDocsViewLoadFileBlock Nonnull)completionBlock;
// 将文件从视图中卸载

- (void)unloadFile;
// 重新加载文件,例如横竖屏切换时调用。

- (void)reloadFileWithCompletionBlock:(ZegoDocsViewLoadFileBlock _Nullable)completionBlock;
// 是否允许手动滑动。
// @param enable: YES:可以手动滑动;NO:不能手动滑动

- (void)setManualScrollEnable:(BOOL)enable;
// 跳转到指定页位置。
// @param page: 跳转目标页,从1开始
// @param completionBlock: 跳转完成回调,可以传空

- (void)flipPage:(NSInteger)page completionBlock:(ZegoDocsViewScrollCompleteBlock _Nullable)completionBlock;
// 跳转到指定页的指定动画步骤,仅对动态PPT有效
// @param page 跳转目标页,页码从1开始
// @param step 跳转目标页的动画步骤数,步骤从1开始
// @param completionBlock 翻页完成回调,可以传nil
- (void)flipPage:(NSInteger)page step:(NSInteger)step completionBlock:(ZegoDocsViewScrollCompleteBlock _Nullable)completionBlock;
// 跳转到纵向偏移百分比。
// @param verticalPercent: 纵向偏移百分比,参数取值范围 0.00 ~ 1.00,例如要跳转到一半的位置,则传入参数为 0.50
// @param completionBlock: 跳转完成回调,可以传空

- (void)scrollTo:(CGFloat)verticalPercent completionBlock:(ZegoDocsViewScrollCompleteBlock _Nullable)completionBlock;
// 同步区域,包括缩放、偏移、滑动范围等。应用场景:如与白板操作同步
// @param scaleFactor 缩放比例
// @param scaleOffsetX 缩放偏移量X
// @param scaleOffsetY 缩放偏移量Y
- (void)scaleChangedWithScaleFactor:(CGFloat)scaleFactor
                       scaleOffsetX:(CGFloat)scaleOffsetX
                       scaleOffsetY:(CGFloat)scaleOffsetY;
// 获取PPT指定页码的备注
// @param page 指定页码,页码从1开始
// @return PPT 该页备注,若没有备注,则返回 @”“

- (NSString *_Nullable)pptNotesOfPage:(NSInteger)page;
// Excel文件切换到指定sheet
// @param sheetIndex sheet下标,从0开始

- (void)switchSheet:(int)sheetIndex;
/// 获取当前文件缩略图列表,仅支持PDF ,PPT,动态PPT文件格式,可在文件加载成功后调用
/// @return 文件缩略图URL列表
- (NSArray *)getThumbnailUrlList;
// 下一步,针对动态PPT ZegoDocsViewFileTypeDynamicPPTH5 类型操作
// @param completionBlock 跳转完成回调,可以传nil

- (void)nextStepWithCompletionBlock:(ZegoDocsViewScrollCompleteBlock _Nullable)completionBlock;
// 上一步,针对动态PPT ZegoDocsViewFileTypeDynamicPPTH5 类型操作
// @param completionBlock 跳转完成回调,可以传nil

- (void)previousStepWithCompletionBlock:(ZegoDocsViewScrollCompleteBlock _Nullable)completionBlock;

4.3 ZegoDocsViewDelegate

// 用户通过手指在屏幕上滑动过程中的回调
// @param isScrollFinish: 滑动过程中会持续产生该回调,通过该参数判断滑动是否结束(手指离开屏幕,并且滑动停止)

- (void)onScroll:(BOOL)isScrollFinish;

4.4 Block

// ZegoDocsViewManager init 方法产生的回调
// @param errorCode: 回调错误码,0 表示执行成功

typedef void(^ZegoDocsViewInitBlock)(ZegoDocsViewError errorCode);
// ZegoDocsView loadFile 方法产生的回调
// @param errorCode: 回调错误码,0表示执行成功

typedef void(^ZegoDocsViewLoadFileBlock)(ZegoDocsViewError errorCode);
// ZegoDocsViewManager uploadFile 方法产生的回调
// @param state: 文件上传阶段,分为上传(ZegoDocsViewUploadStateUpload)和格式转换(ZegoDocsViewUploadStateConvert)两个阶段
// @param errorCode: 当前阶段的回调错误码,0表示执行成功
// @param infoDictionary: 当前阶段回调所包含的信息
// @note: 上传阶段,如果正常上传,会产生多次回调,每次都包含文件上传进度。例如当前上传50%,则 infoMap 内容为 {"upload_percent":0.50};当前上传100%,则 infoMap 内容为 {"upload_percent":1.00}。
//     格式转换阶段,如果转换成功,只产生一次回调,包含转换后的文件ID。例如当前转换完成,则 infoMap 内容为 {"upload_fileid":"xxxxxxxx"}

typedef void(^ZegoDocsViewUploadBlock)(ZegoDocsViewUploadState state, ZegoDocsViewError errorCode, NSDictionary * infoDictionary);
// ZegoDocsView flipPage 或者 scrollTo 方法产生的回调
// @param isScrollSuccess: 跳转是否成功,接口方法传入的页码或者偏移百分比超出范围时,该参数为false

typedef void(^ZegoDocsViewScrollCompleteBlock)(BOOL isScrollSuccess);