文档首页 > > 用户指南> 集成iOS客户端> 源码导读

源码导读

分享
更新时间:2020/08/18 GMT+08:00
快视频iOS Demo采用基础的MVC模式开发,分模块文件管理。其内部封装了多个工具,并引入了多个第三方常用库。
  • “Tool”文件夹中的“HWTool”“HWLiveKitManager”“HWPhotoLibray”和HWThirdPaty等都是根据功能块提供的工具,可以更方便的实现推流、相册、第三方分享等功能。您可以根据模块功能找到对应的文件进行相应的修改。
  • 第三方库如“AFNetworking”“YYCache”“SDWebimage”“MJRefresh”“Masonry”等,实现网络、缓存、图片、刷新、UI等功能。
  • “Other/NetWorkManager”文件夹下“HWNetWorkManager”文件实现了对“AFNetWorking”的二次封装。网络协议进一步封装,减少了“AFNetworking”协议代码和增加代码的独立性。

目录结构解析

将在SDK开发者中心下载的Demo源码使用Xcode打开工程,Demo目录结构如图1所示。各文件或目录的功能如表1表2所示。

图1 目录结构

快视频Demo的目录结构如表1所示,“Sections”文件夹是主要文件夹,包含主要的核心功能文件。

表1 目录说明

工程目录

说明

Class/NVS/EditVideo

视频编辑模块。

CLass/Login

登录UI。

Class/Home

主界面模块,提供短视频列表和直播视频列表。

livePlayer主要实现直播播放功能,model保存房间信息和视图信息。

ShortVideo主要实现短视频播放,model主要保存了视频信息、评论信息和协助网络接口功能。

Class/AddVideo

上传模块和推流模块。

UploadVideo实现上传功能。

PushLive实现推流功能,NvFlowPushCaptureViewController.h控制器包含了全部直播推流功能,

Class/Persional

个人模块。

Class/Tool

FFmpeg、AFNetwork和YYCache等通用工具。

Class/Other

网络接口和HUD。

Class/Main

视图、base视图和用户管理。

Class/Category

类别。

Class/macro

宏。

Class/Vendor

SDK。

表2 模块说明

模块

说明

ShortVideo

  • HWShortVideoViewController:主要实现短视频列表拉取和展示。
  • HWShortVideoModel:采用数据驱动UI的原则,携带了CollectionView的UI布局。
  • HWShortVideoCollectionViewCell:用户可以通过继承父类的cell直接替换UI。
  • HWShortVideoPreviewViewController:视频播放界面。
  • HWPlayerViewModel:数据控制model,包含播放视图的所有网络请求。
  • HWPlayerView:视频播放器,包含主要视频播放核心代码。视频拉流播放器原理基本一致,具体代码请查看“HWLivePlayerView”类方法。

DouyinFx

  • douyinCapture
    • NvDouyinCaptureViewController:包含视频采集界面的UI展示和视频采集SDK的使用。具体代码请查看“startupCapture”类方法。
    • startCapturePreview:开启摄像头并设置摄像头的相关配资,如视频尺寸、是否采集音频、是否开启人脸检测等。
  • douyinEdit

    NvDouyinEditViewController:包含视频编辑页面,主要有滤镜特效、时间特效。具体代码请查看“startFilter”类方法。

AddVideo

  • UploadVideo
    • UploadVideoViewController:视频上传。
    • HWUploadNetMethods:OBS后台网络请求,获取相关的AK、SK、Token。
  • PushiLive

    NvFlowPushCaptureViewController:视频推流,视频采集原理与“NvDouyinCaptureViewController”一样,视频推流使用推流SDK,具体使用请查看“viewDidload”类方法。

Personal

HWPersonalViewController:用户界面UI。展示用户信息,用户收藏发布视频和设置页。解决“tableView”“CollectionView”嵌套手势冲突的方法,在“tableView”父类“HWTableView”中实现代理,然后在“HWPersonalView”“scrollViewDidScroll”代理中根据偏移位置固定或滑动相对应view的“contentOffSize”

User

HWUserManager:用户信息管理,实现用户的登录、退出和保存用户信息。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问