项目实训—基于AI的智能视频剪辑器(十二)项目总结报告

文章目录

  • 前言
    • 总体工作
    • Activity
    • Adapter
    • Bean
    • component
    • fragment


前言

在智能剪辑视频app“易剪”的项目开发中,我所负责的部分是安卓端开发,下面将按照项目目录结构分块介绍各个部分所完成的工作


总体工作

项目实训—基于AI的智能视频剪辑器(十二)项目总结报告_第1张图片
本次项目开发中,安卓端共完成了java代码:activity文件夹下4个类,adapter文件夹下5个类,bean文件夹下3个类,component 文件夹下 11个类,controller 文件夹下1个类,core文件夹下24个类(core部分主要是对框架的集成,自行编程代码较少,此部分不再展开),fragment 文件夹下17个类,utils 文件夹下30个类,widget 文件夹下2个类,共计100个类

对应页面及组件共完成49个xml布局文件

此外为了集成调用 ffmpeg 框架,编写了两个c文件,并修改部分 ffmpeg 源码。

Activity

类名 作用
SplashActivity 启动页面,在这里首先会根据是否存在token来判断接下来开启 LoginActivity还是MainActivity
LoginActivity 登录页面,在这里会直接唤起 LoginFragment,具体的处理逻辑全部放在 LoginFragment 中,轻量化 Activity
MainActivity 项目主页,内置三大主要页面 TabFragment、ChoiceFragment、ProfieFragment,监听底部菜单栏、侧边栏点击事件,进行相应

Adapter

类名 作用
FilterRecyclerViewAdapter 滤镜 RecyclerView 适配器,将项目提供的滤镜适配到页面,需要首先从 asset 文件夹下加载滤镜信息
FramesAdapter 在功能时长截取中,页面中有一个视频所有帧的陈列,用户可以拖动组件来截取,这里是将视频的每一帧适配到页面上
PictureRecyclerViewAdapter 目标人物及场景图片适配到页面
RecyclerViewAdapter 返回的视频片段适配到页面
TaskAdapter 创作历史中剪辑任务适配到页面
VideoRecyclerViewAdapter 创作历史中剪辑作品适配到页面

Bean

类名 作用
UserBean 用户信息,包括id、电话号码、密码等
VideoBean 长视频信息,包括标题、路径等
ShortVideoBean 系统智能剪辑出的短视频信息,包括视频路径、起始帧、结束帧、是否包含人物、是否包含场景以及一系列与其相似的其他短视频(应用于智能预览)
TaskBean 剪辑任务信息,包括视频名、剪辑模式、剪辑状态、该任务得到的 ShortVideoBean 列表

component

包含自行编写的所有页面 view 组件

类名 作用
scrollview 上拉出现,下拉消失的页面组件
PrepareView 视频播放器预备页面
CompleteView 视频播放器完成页面
ErrorView 视频播放器出错页面
GestureView 视频播放器手势控制
LiveControlView 视频播放器底部控制栏
TitleView 视频播放器顶部标题栏
VodControlView 视频播放器进度条
VodSControlView 视频播放器带标识的进度条
RangeSeekBarView 时长截取组件

controller 文件夹下有一个 StandardVideoController 类,来组合所有视频播放 view,控制视频播放

fragment

类名 作用
TabFragment 创作历史页面,包含两个子页面 TaskFragment 和 HistoryFragment
TaskFragment 剪辑任务页面
HistoryFragment 历史完成剪辑作品页面
DisplayFragment 智能剪辑完毕后陈列页面
WorkFragment 个人剪辑页面
TimeCutFragment 个人剪辑时长截取页面
SpeedFragment 个人剪辑变速页面
ChoiceFragment 选择模式页面
UploadFragment 上传页面
PreviewFragment 智能预览页面
LoginFragment 登录注册页面
ProfileFragment 个人页面
SettingsFragment 设置页面
AboutFragment 关于页面
ServiceFragment 协议页面

utils文件夹下主要是一些工具类,包括上传下载、token设置、ffmpeg调用、自动更新等,这里不再赘述

你可能感兴趣的:(项目实训,android,java)