广东海洋大学本科生毕业论文

2016届本科生毕业设计

爱尚短视频社区APP的设计与实现

Design and Implementation of Love is a Short Video APP

学生姓名

所在学院

所在专业

申请学位

指导教师

副指导教师 钟炜堂 信息学院 学号 [1**********]1 班级 应用1123 软件工程 工学学士 郑苑丹 职称 职称 讲师

答辩时间

2016年6月4日

目 录

设计总说明 ................................................................................................................................. I INTRODUCTION ..................................................................................................................... II

1绪论 ......................................................................................................................................... 1

1.1项目开发背景和意义 ..................................................................................................... 1

1.2内容及拟解决的关键问题 ............................................................................................. 1

2相关技术 ................................................................................................................................. 2

2.1开发语言 ......................................................................................................................... 2

2.2开发工具 ......................................................................................................................... 2

2.3开发框架 ......................................................................................................................... 3

3总体概述 ................................................................................................................................. 3

3.1系统概述 ......................................................................................................................... 3

3.2项目需求 ......................................................................................................................... 4

3.3系统角色 ......................................................................................................................... 5

4系统功能 ................................................................................................................................. 6

4.1缩写和术语 ..................................................................................................................... 6

4.2用户模块 ......................................................................................................................... 6

4.3视频模块 ......................................................................................................................... 9

4.4焦点图模块 ................................................................................................................... 13

4.5音乐模块 ....................................................................................................................... 13

4.6视频分类模块 ............................................................................................................... 14

5数据库设计 ........................................................................................................................... 15

5.1数据库ER图。 ............................................................................................................. 15

5.2数据库表设计 ............................................................................................................... 16

6详细设计 ............................................................................................................................... 18

6.1用户模块 ....................................................................................................................... 18

6.2视频模块 ....................................................................................................................... 20

6.3焦点图展示模块 ........................................................................................................... 23

6.4音乐模块 ....................................................................................................................... 24

6.5视频分类模块 ............................................................................................................... 25

6.6其他模块 ....................................................................................................................... 26

7系统实现 ............................................................................................................................... 27

7.1用户模块 ....................................................................................................................... 27

7.2视频模块 ....................................................................................................................... 27

7.3焦点图模块 ................................................................................................................... 29

7.5视频分类模块 ............................................................................................................... 31

鸣 谢 ...................................................................................................................................... 32

参考文献 .................................................................................................................................. 33

设计总说明

移动短视频行业较传统网络视频行业,既没有巨大的带宽、服务器支出,也没有较高的版权购买支出,现在我们所熟悉的最热门APP都与短视频相关。因为短视频APP[1]圈住了如今爱美的女性,如果将其融入社交元素,就会使其得到更多人青睐。新兴的事物总能激起人们探索的好奇心,所以本人选择视频领域相关的课题,本课题的定位就在“人人都是明星”,视频界的“美图秀秀”。

本课题主要由以下五个模块组成,分别是:用户模块、视频模块、视频分类模块、音乐模块、首页焦点图展示模块;本课题将实现Android前端页面的开发、后台开发。前端开发语言是Java,开发环境Android Studio;后台开发环境MyEclipse;网络请求采用当前流行稳定的开源框架xUtil;引用第三方视频顺序图插件--趣拍;文件寄存于文件服务器--阿里百川;数据库使用Mysql。

下面是本课题的简要介绍:

(1)第一章为绪论部分,介绍了项目开发的意义和其背景,阐述了设计该项目的时候要解决的关键问题,为该课题的研究指明了明确的方向;

(2)第二章总体介绍了该设计使用到的相关技术,让大家大致了解该设计;

(3)第三章是本课题的总体简单概述,让阅读者们清晰的了解本课题要实现的内容;

(4)第四章主要是该设计的系统需求和功能分析;

(5)第五章主要是数据库设计;

(6)第六章是给出功能详细设计。

关键词:短视频;趣拍;阿里百川;Android Studio;

INTRODUCTION

INTRODUCTION

Mobile short video industry than traditional network video industry, neither spending huge bandwidth, server, also does not have the high of copyright purchase, now we are familiar with the most popular APP were associated with a short video. Short video in the APP now love beautiful women, if blend in the social elements, will make it get more and more people favor. This subject positioning in the "everyone is a star," video "beautiful picture show". In simple terms, this topic is to tell the public, it is a great camera - will clip, filters, watermark, music, high-definition merging into the five key elements in the MV effects, the video processing all complex late work, become a one-click simple operation. As long as the press, the ordinary can become beautiful MV video for a second.

This topic is mainly composed of the following five modules, respectively is: video module, user module, music library module, video classification module, homepage focus figure display module; This topic will implement the Android front end development, the development background of the page. The front-end development language is Java, Android development environment Studio; The background MyEclipse development environment; Network request is made of the current popular open source framework xUtil stability; Refer to the third party video processing plug-in - boring film; Document check in a file server - ali bacc the; Use the Mysql database.

Below is a brief introduction of the topic:

(1)The first chapter is the introduction part, this paper introduces the significance of project development and its background, this paper expounds the design of the project was to solve the key problems, pointed out the clear direction to the study of the subject;

(2)The second chapter introduces the general design used in related technology, let everybody know roughly how design;

(3)The third chapter is the analysis of the system requirements and function of the design, let the reader know more about this topic.

(4)The fourth chapter mainly abstracts the general design of system function structure; The fifth chapter is to give function design in detail.

(5)The fifth chapter mainly database design;

(6)The sixth chapter is to give function design in detail.

KEYWORDS: Short Video;Boring film;Ali bacc the;Android Studio;

爱尚短视频社区APP的设计与实现

软件工程,[1**********]1,钟炜堂

指导教师:郑苑丹

毕业设计说明书

1绪论

1.1项目开发背景和意义

随着电子技术的发展,网络速度的提升,人们对视频的消费方式开始愈发的变得多样化,传统的视频消费场所由电视逐步过渡到了网络上,对设备的需求也由电视机过渡到电脑,再到现在的智能手机,设备变得越发轻量级,消费方式也更加自由。自 youtube 以来,国内各种各样的视频门户网站比如 youku,爱奇艺等也层出不穷,人们的生活得到大大的丰富。

简单的说,本课题要告诉大众的就是,它是一款效果特棒的摄像机[1]——将剪辑,滤镜,水印,音乐,高清画质这五大要素融合成MV特效,把视频顺序图所有复杂的后期工作,变成一键式的简单操作。只要按一下,普通视频一秒就能变身精美MV。

在通过精密的用户体验分析后,将用户的拍摄行为限制在“8秒”的范围内[4],可以有效提高内容的优质性;其次,本课题将重视个人关系链数据,如关注数、粉丝数、互相关注数,注重互动的数据。尤其是互动,互动场景的延伸;基于以上的分析,爱尚短视频APP为大众量身定做一个方便好用的视频社交应用[2]。

本课题将实现如下五个模块的功能:用户模块、视频模块、分类模块、音乐模块、焦点图模块,其中课题将精选热门、明星、搞笑逗比、女神男神、音乐舞蹈、时尚美妆、美食创意、宝宝萌宠、二次元等好玩有趣的短视频!

1.2内容及拟解决的关键问题

本系统的Android端需要实现如下关键性问题。

(1)视频拍摄和特效处理[3]。

(2)视频编辑上传和播放。

(3)采用分布式文件服务器存储文件来减轻应用服务器的带宽。

(4)视频音乐库动态管理。

(5)视频菜单动态管理。

2相关技术

2.1开发语言

(1)Java

Java是一种通用的计算机编程语言,设计语言。它是为基于类的面向对象专门设计的,这区别于C语言的面向过程,它尽可能少的实现依赖关系,选择Java作为主要开发语言是由于其拥有较高的开发效率及较低的学习成本。 (2)XML

XML是基于树形结构的数据模型, 可扩展置标语言,可扩展标记语言。在安卓设计应用方面主要用于安卓界面Layout布局文件和Mainifest.xml配置文件。

2.2开发工具

1.Android Studio

Android Studio是 Android官方的IDE[10]。目的是帮助您为每个Android设备加快开发和构建高质量的应用程序。它为Android开发者提供量身定制的工具,包括丰富的代码编辑、调试、测试和分析工具。

它是一个灵活的Gradle-based构建系统[8],它是一个快速的和功能丰富的模拟器,它是一个集成的统一的环境,您可以在此平台开发Android设备;它的代码模板和GitHub集成帮助您构建共同应用特性和导入示例代码,他还具有广泛的测试工具和框架;内置支持谷歌的云平台,便于整合谷歌云消息和应用程序引擎;具备线头工具捕获性能、可用性、版本兼容性,和其他问题比如c++和NDK支持[7]。

2.MyEclipse

MyEclipse对于今天的现代企业开发人员是一个强大的Java EE IDE ;

MyEclipse提供一个智能和健壮的内容辅助引擎,不仅提供了几个完成类型,但也执行在不同的文件类型和Java一样,HTML、JavaScript和配置文件,从而帮助你节省很多时间打字。使用MyEclipse不需要经过复杂的搜索模式或穿过一组向导页面导航到你想要的资源。除了标准的Eclipse大纲视图外,还有许多其他的功能,使工作台内导航非常容易。MyEclipse Explorer不仅提供了一种简单的方法来快速定位文件和资源,还包括高级搜索和过滤功能。MyEclipse提供强大的企业发展与多个省时便利,帮助你代码高效和有效地导航项目

3.PhotoShop

它是是一款创造性的核心项目,也是世界上最好的成像和设计程序,可以创建创建

任何你可以想象的画面。用户可以使用桌面和移动设备来创建和优化照片,也可以使用它作为网站设计和手机应用程序设计、3 d作品设计、视频设计等等的辅助工具。

4.Adobe Dreamweaver

世界上最完整的网站开发工具集,网页设计师和前端开发人员可以使用其创建代码和管理网站,他可以开发适应于任何大小的屏幕上的网页,实时预览网页,看效果是否符合需求或者是否匹配不同屏幕大小。

5.Camtasia Studio

Camtasia是一款特棒的视频编辑工具,它是TechSmith旗下一款专门录制屏幕动作和制作视频的工具, Camtasia集成多种视频处理工具的功能但是界面并且轻便,容易上手;它允许您在你的电脑屏幕上记录视频。用它来制作教程、精美视频或产品演示。把屏幕录音变成引人注目的视频 。

2.3开发框架

1.xUtil

xUtils 最初源于Afinal框架[5],进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响;xUtils最低兼容android 2.2 (api level 8),当前xUtils主要有四大模块:

(1)DbUtils模块:android中的orm框架,一行代码就可以进行增删改查;

(2)ViewUtils模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;

(3)HttpUtils模块:支持同步,异步方式的请求;支持大文件上传,上传大文件不会内存溢出;

(4)BitmapUtils模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;

2.Spring + Struts +Hibernate

Spring框架提供了一个全面的现代java企业应用程序编程和配置模型部署平台Spring集中在企业应用程序的“管道”,团队可以专注于应用程序的业务逻辑,没有不必要的关系到特定的部署环境。核心支持依赖注入、事务管理、web应用程序中,数据访问、消息传递、测试等等。

Apache Struts是一个免费,开源,MVC框架支持现代Java web应用程序。它有利于约定优于配置,是一个可扩展插件的架构,附带插件支持AJAX和JSON。

Hibernate适用于关系数据库,作为一个对象/关系映射(ORM)框架。

3总体概述

3.1系统概述

爱尚视频APP精选了热门、明星、搞笑逗比、女神男神、音乐舞蹈、时尚美妆、

美食创意、宝宝萌宠、二次元等好玩有趣的短视频!客户端实现了包括视频拍摄、视频优化、视频上传、视频查找、视频分类、首页推荐、视频收藏、视频评论、视频推荐、用户动态、用户关注、音乐素材、焦点图展示等功能。系统功能结构图如图3-1所示。

图3-1系统功能结构图

本系统的所有文件包括上传的视频和音乐、图片都保存在阿里文件服务器中,这样可以避免自己搭建分布式文件服务器的困扰,还尽可能的节省web应用服务器的带宽和消耗,所有数据保存在数据库中供安卓手机终端获取,所以,本设计的系统架构图如图3-2所示。

安卓手机终端

安卓手机终端

数据库服务器

图3-2系统架构图

3.2项目需求

其系统业务用例描述如表3-1所示:

表3-1系统总体用例描述

系统业务 视频拍摄 视频优化 视频上传 视频查找 视频分类 首页推荐 视频收藏 视频评论 用户动态 用户关注

用例概述

用户自拍一段视频;或者从手机端选择一段视频;

用户选择美颜等级;选择背景音乐;选择渲染效果;生成视频; 用户完善视频信息后(标题、描述、分类、封面)上传视频; 可以按照视频名称进行搜索视频;

可以查看视频分类、点击分类查看相应的视频列表; 首页展示推荐的优秀视频列表;

用户可选择对喜欢的视频进行收藏;可以查看自己的收藏列表; 用户可对看后视频发表自己的想法;可以查看该视频的所有评论; 所有用户最新发表的视频动态;点击可进入视频详情;

用户可对喜欢的投稿者进行关注;可以查看自己或对方的粉丝或者追随着;

音乐素材 焦点图广告 查看资料 登录注册 管理员管理 视频拍摄

文件服务器保存了音乐素材,供用户下载使用; 首页展示了三张焦点图;

用户可查看并管理自己的资料(包括上传头像); 用户登录和注册;

管理员对视频分类、音乐素材、焦点图广告进行管理; 用户自拍一段视频;或者从手机端选择一段视频;

3.3系统角色

本系统角色包括普通用户和后台管理员。普通用户的主要功能是视频拍摄、视频优化、视频上传、视频查找、视频收藏、视频评 论、用户关注等;管理员的主要功能是添加音乐素材、添加视频分类、添加焦点图广告等。角色功能及权限描述如表3-2所示。

表3-2 系统角色表

角色 普通用户

角色描述

(1)拥有拍摄上传视频的权限; (2)拥有查看普通用户信息的权限; (3)拥有关注喜欢的用户权限; (4)拥有登录与注册的权限; (5)拥有下载音乐素材的权限; (6)拥有搜索视频的权限; (7)拥有查看视频信息的权限; (8)拥有收藏喜欢的视频的权限; (9)拥有评论视频的权限

管理员

(1)拥有管理音乐库的权限; (2)拥有管理视频分类的权限; (3)拥有管理视频公告的权限;

4系统功能 4.1缩写和术语

缩写与术语如表4-1所示:

表4-1缩写与术语

缩写、术语 REGISTER LOGIN ALTER_USER_INFO

USERFOCU UPLOADVIDEO VIDEODETIAL VIDEOCOLLECT VIDEOCOMMENT VIDEOMENU MUSIC_METERIAL ADVERTISEMENT

解释 注册 登陆 修改个人信息 用户关注 拍摄上传视频 查看视频详情 收藏视频 评论视频 分类信息管理 音乐素材管理 焦点图管理

4.2用户模块

用户模块功能分别为注册登录、查看和修改个人信息、用户关注,用例图如图4-1

所示。

图4-1用户模块用例图

4.2.1注册

系统显示注册页面,提示用户输入,对于必填项不能为空,注册账号不存在于已注册信息里,符合要求的注册信息可以提交成功并提示注册成功。用户注册用例规约如表4-1所示。

表4-1普通用户注册用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

用户注册 REGISTER 注册用户

普通用户下载APP并注册一个新账号。 处于注册页面并保持网络打开; (1)打开APP,进入注册页面;

(2)输入自定义账号和密码、验证两次输入的密码是否一致、验证帐号是否已经被注册。

(3)注册成功,服务端返回消息,切换到登陆页面。

其他事件流

(1)若密码不一致,则重新输入密码; (2)若账号已经存在,则提示用户;

异常事件流 后置条件

网络异常

User表新增一条用户记录

用例概述

4.2.2登陆

用户进入登录页面,填写个人登录信息,登陆用例规约如表4-2所示。

表4-2普通用户和管理员登陆用例规约

系统业务 用例名称 用例ID 角色 用例说明

登陆 LOGIN

普通用户,管理员

普通用户在使用应用的功能前必须登录APP应用;管理员在操作后台数据前需要打开网页登录界面进行登录;

前置条件 基本事件流

处于登陆页面并保持网络打开; (1)在登陆页面输入帐号密码;

(2)验证用户账号和密码,同时弹出等待动画; (3)登陆成功后动画延迟两秒消失,进入应用;

其他事件流 异常事件流 后置条件

账号密码不正确,提示重新输入; 网络断开

(1)普通用户登录到应用主界面; (2)管理员登录到后台添加页面

用例概述

4.2.3修改个人资料

用户进入个人信息编辑页面,修改个人信息用例规约如表4-3所示。

表4-3 普通用户修改个人信息用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

修改个人信息 ALTER_USER_INFO 普通用户

用户选择修改个人头像、昵称、签名 登陆后并处于个人资料修改页面

(1)系统已经默认为用户显示原来的文字信息和头像,用户只需选择修改文字信息,或者只上传新头像;

(2)输入完成后点击保存,服务端返回消息; (3)弹窗告知用户修改资料成功;

其他事件流 异常事件流

保存失败,弹窗提示用户资料未改动,; (1)网络错误

用例概述

后置条件

User表用户信息更新

4.2.4用户关注

用户进入她人的主页,点击关注按钮。用户关注用例规约如表4-4所示:

表4-4普通用户关注用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

用例概述 用户关注 USERFOCU 注册用户

对喜欢的用户可进行关注,关注后就是她的粉丝了。 未关注过该用户

(1)进入她的主页,点击关注按钮添加关注,服务端返回结果。 (2)点击她的粉丝数量,就可以看到她的粉丝列表里面有你。 (3)点击她的关注数量,就可以看到她的关注用户列表有没有你。 (4)在我的主页中点击我的关注数量也可以查看我的关注人群,点击我的粉丝数量可以查看关注我的人。

(5)在关注列表或者粉丝列表点击单项,又可以进入对应的用户主页,你可以继续对他操作。 (6)可对其取消关注。

其他事件流 异常事件流 后置条件

关注失败后状态不更新 网络断开

数据库follow表新增一条关注记录

4.3视频模块

该子功能包括5个子功能,分别为拍摄上传视频、查看视频详情、评论视频、收藏视频、搜索视频,用例图如图4-5所示。

图4-5视频模块用例图

4.3.1拍摄上传视频

拍摄上传视频用例规约如表4-6所示。

表4-6 拍摄上传视频用例规约

系统业务 用例名称 用例ID 角色 用例说明

拍摄上传视频 UPLOADVIDEO 普通用户

用户拍摄一段小视频或者从本地选择视频,视频经过特效编辑后上传到服务器。

前置条件

手机必须支持摄像头拍摄,安卓版本大于4.4 手机拍摄最长时间为8秒,最短时间2秒 手机外置存储卡空闲空间不小于10M 上传视频必须保持网络畅通

基本事件流

(1)用户打开拍摄页面,可选择本地视频文件、可选择历史保存的拍摄草稿、可选择0-100的美颜参数,可选择自动延迟拍摄、支持镜头反转。 (2)用户拍摄一段视频后进入视频编辑页面,可选择7种视频渲染风格、可选择消除原声或降低音量、可选择加入本地背景音乐进行视频渲染、也可以进入音乐库选择下载音乐背景素材;

(3)完成后点击生成视频,视频合成后跳转到资料完善页面,在这里可以观看刚合成的视频和视频封面,然后填写标题和描述;

用例概述

(4)点击下一步,进入视频上传页面,在这里点击列表单项选择视频分类后就可以提交了;

(5)页面显示视频的上传进度,显示封面的上传进度,上传完成后提示用户; 用户可以在个人主页查看自己的投稿视频列表,列表可点击进入视频详情

其他事件流

(1)用户取消录制视频

(2)用户录制视频后取消编辑操作 (3)视频生成后用户取消上传

异常事件流

(1)网络故障

(2)手机内存和cpu消耗大

后置条件

Video表新增一条视频信息

4.3.2查看视频详情

用户可以从多种途径进入视频详细页面包括(收藏列表、投稿箱、首页推荐、用户动态、分类搜索、名称搜索等),查看视频详情用例规约如表4-7所示。

表4-7 查看视频详情用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

查看视频详情 VIDEODETIAL 注册用户

普通用户从多个页面进去视频首页查看视频详情 该视频有效

(1)用户点击自己或者他人的的收藏列表进入。 (2)用户点击自己或者他人的投稿列表进入。

(3)用户点击分类搜索页面,在搜索结果返回列表进入。 (4)用户根据视频名称搜索视频,在搜索结果返回列表点击进入。 (5)用户在应用首页推荐列表点击进入。 (6)用户在应用用户动态列表点击进入。 (7)在视频详情页可点击播放视频。

其他事件流 异常事件流

(1)视频不存在 (2)网络断开

后置条件

显示视频详情

用例概述

4.3.3评论视频

在视频详情页面,用户单击评论按钮,跳转到输入页面,输入完成后单击提交即可保存。评论视频用例规约如表4-8所示:

表4-8评论视频用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

评论视频 VIDEOCOMMENTS

用例概述

注册用户

普通用户对某一视频发表观后感、想法、改进意见 输入评论内容

(1)输入评论内容,判断内容是否为空。 (2)服务端返回结果,弹窗提示评论成功。

(3)应用自动刷新评论列表,用户可以看到自己的评论。

其他事件流 异常事件流 后置条件

评论保存失败 网络断开

Comment表新增一条信息

4.3.4收藏视频

在视频详情页面,用户单击收藏按钮,即可保存。收藏视频用例规约如表4-9所示。

表4-9收藏视频用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

收藏视频 VIDEOCOLLECT 注册用户

普通用户选择对自己喜欢的视频添加收藏 网络畅通

(1)进入视频详情页面。

(3)点击收藏图标,服务端返回收藏结果。

(4)用户可选择返回查看自己的收藏列表,列表可点击。

(5)用户可以在他人主页查看他人的收藏列表,列表可点击进入对应的视频详情页。

(6)视频可取消收藏。

其他事件流 异常事件流

收藏失败 无

用例概述

后置条件

4.4焦点图模块

该公告主要应用于用户访问APP首页时看到的焦点图, 管理员可以在后台页面加入新公告,用例图如图4-10所示。

管理员

普通用户

图4-10焦点图模块用例图

焦点图管理用例规约如表4-11所示:

表4-11 首页焦点图管理规约

系统业务 用例名称 用例ID 角色 用例说明

焦点图管理 ADVERTISEMENT 管理员、普通用户

管理员在后台新增管理公告图片,客户端动态加载三张焦点图,用于首页轮播,焦点图有以下用途(节日祝福、服务器维修公告、应用活动、插播广告)

前置条件 基本事件流

(1)管理员登陆。

(2)管理员在后台添加新的焦点图,并且完善信息,保存即可。 (3)普通用户使用app在首页轮播中看到焦点图。

其他事件流 异常事件流 后置条件

无 无 无

用例概述

4.5音乐模块

音乐素材是免费提供给用户使用的(用于拍摄视频的后期渲染)。 管理员可以在后台页面加入新素材,用例图如图4-12所示。

管理员

普通用户

图4-12音乐模块用例图

音乐模块用例规约如表4-13所示:

表4-13 音乐素材管理规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

音乐素材管理 MUSIC_METERIAL 管理员、普通用户 音乐素材是给用户使用的 无

(1)管理员在后台上传mp3格式的音乐和音乐封面,完善信息后保存提交。 (2)普通用户在音乐素材下载页面可以看到新的提交,下载后可使用。 (3)用户打开app查看音乐列表,下载后加入视频渲染,添加到需要上传的视频中。

其他事件流 异常事件流 后置条件

用户下载失败,重新下载 无 无

用例概述

4.6视频分类模块

管理员可以对视频分类进行添加,添加后用户可以看到,用例图4-13所示。

管理员

普通用户

图4-13视频分类用例图

视频分类管理用例规约如表4-14所示:

表4-14 视频分类管理规约

系统业务 用例名称 用例ID 角色 用例说明

视频分类管理 VIDEO_MENU 管理员,普通用户

管理员在后台添加视频分类,用户使用app可以查看分类,可以点击分类搜索视频,可以在上传视频前选择一个分类

前置条件 基本事件流

(1)管理员添加分类信息后保存提交。

(2)普通用户在视频分类页面和上传视频页面都能看到并使用新的分类提交。

用例概述

其他事件流 异常事件流 后置条件

无 无 无

5数据库设计 5.1数据库ER图

数据库ER图如图5-1所示。.

图-5.1数据库ER图

5.2数据库表设计

User 用户:记录用户的相关信息

表5-1 User数据表

字段名 User_id Role_id User_count User_pass User_name User_sex User_description

User_age User_image Rank_end_time

类型 Int(20) Int(20) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Varchar(200) Varchar(20) Varchar(200) datetime

可为空 F F F F F F T T F T

描述 用户id 角色id 用户帐号 密码 昵称 性别 签名 年龄 头像 到期时间

字段描述 主键 外键

Video视频:记录视频的基本信息

表5-2 Video视频信息表

字段名

类型

可为空

描述

字段描述

Video_id User_id Menu_id Video_name Video_description

Video_url Video_image Video_time Video_click

Int(20) Int(20) Int(20) Varchar(20) Varchar(200) Varchar(200) Varchar(200) datetime Int(20)

F F F F F F F F F

视频id 用户id 分类id 名称 描述 链接 视频封面 发布时间 播放数量

主键 外键 外键

Comment 评论:记录用户评论信息

表5-3 视频评论表

字段名 Comment_id User_id Video_id Comment_content Comment_time

类型 int(20) int(20) int(20) varchar(255) datetime

可为空 F F F F T

描述 评论id 用户id 视频id 内容 评论时间

字段描述 主键 外键 外键

follow 关注:记录用户之间关系

表5-5 用户关注表

字段名 Follow_id Follow_user_id Beollow_user_id

类型 int(20) int(20) int(20)

可为空 F F F

描述 关注id 关注者id 被关注者id

字段描述 主键 外键 外键

Menu视频分类:所有视频的分类

表5-6视频分类菜单表

字段名 Menu_id Menu_name

类型 Int(20) Varchar(20)

可为空 F F

描述 菜单id 名称

字段描述 主键

Parent_count Menu_count

Varchar(20) Varchar(20)

T T

父类编号 自身编号

Collect收藏:记录用户收藏的视频

表5-7视频收藏表

字段名 Collect_id User_id Video_id

类型 Int(20) Int(20) Int(20)

可为空 F F F

描述 收藏id 收藏者id 被收藏视频

id

字段描述 主键 外键 外键

Role:角色信息

表5-8用户角色表

字段名 Role_id Role_name 类型 Int(20) Varchar(20) 可为空 F F 描述 角色id 角色名称 字段描述 主键

Music:音乐库,记录后台保存的音乐信息

表5-8音乐素材表

字段名 Music_id Music_url Music_image Music_name

类型 Int(20) Varchar(200) Varchar(200) Varchar(20)

可为空 F F F F

描述 音乐id 音乐路径 封面路径 音乐名称

字段描述 主键

Advertisement:焦点图信息

表5-9焦点图信息表

字段名 Advertise_id Advertise_name Advertise_image Advertise_action

类型 Int(20) Varchar(20) Varchar(200) Varchar(200)

可为空 F T F T

描述 公告id 公告名称 图片路径 动作

字段描述 主键

6详细设计 6.1用户模块

类文件存放路径如表6-1所示:

表6-1用户模块模块文件存放路径

名称

RegisterActivity

MyInfoActivity MyInfoEditActivi

ty ImageUploadActiv

ity

SheInfoActivity

UserListActivity

UserListAdapter

类型

Activity Activity Activity

存放位置

activity\RegisterActivity.java activity\MyInfoActivity.java

说明

注册页面 个人主页

更改个人信息

页面

头像上传页

activity\MyInfoEditActivity.java

Activity activity\ImageUploadActivity.java

Activity Activity Adapter activity\SheInfoActivity.java activity\UserListActivity.java adapter\UserListAdapter.java

用户主页 用户关注列表、粉丝列表 用户列表适配

器 为了保障数据的可追踪性,用户只能在已经注册的前提下登陆应用,才能使用接下来的功能,注册登录顺序图如图6-2所示。

当用户对其他用户感兴趣时,可以选择对他进行关注,这样就可以在关注列表中查

看到该用户,用户关注顺序图如图6-3所示。

图6-3用户关注顺序图

用户可以进入个人主页查看自己的全部信息,并且选择修改个人信息包括更换头像等,查看和修改用户信息顺序图如图6-4所示。

图6-4查看和修改用户信息顺序图

6.2视频模块

(1)类文件存放的路径,如表6-5所示:

表6-5视频模块文件存放路径

名称 类型 存放位置 说明

QuPaiMainActivity2 Activity activity\QuPaiMainActivity2.java

VideoEditInfoActivi

ty

Activity activity\VideoEditInfoActivity.java

三方服务(Service) 拍摄前后的事务逻辑顺序图

视频上传前的信息完善类 视频详情页 视频播放页面 投稿视频列表

子页 视频收藏列表

子页

VideoDetailActivity

Activity Activity

Fragment

activity\VideoDetailActivity.java activity\VideoPlayerActivity.java fragment\MyVideoListFragment.java fragment\CollectFragment.java

VideoPlayerActivity

MyVideoListFragment

CollectFragment

Fragment

用户拍摄了一段视频后选择上传保存,拍摄视频上传顺序图如图6-6所示。

图6-6拍摄上传视频顺序图

查看视频详情顺序图如图6-7所示。

图6-7查看视频详情顺序图

视频收藏顺序图如图6-8所示。

视频评论顺序图如图6-9所示。

图6-9

视频评论顺序图6.3焦点图展示模块

类文件存放的路径如表6-10所示:

表6-10焦点图模块文件存放路径

名称

FocusPictureFrag

men

Advertisement

Advertisement

类型

Fragment

存放位置

fragment\FocusPictureFragment.java

说明

焦点图子页面

PO JSP

app\src\main\java\entity\

Advertisement.java

myapp\jsp 焦点图PO

管理员添加焦点图顺序图如图6-11所示。

图6-11添加焦点图顺序图

6.4音乐模块

类文件存放的路径如表6-12所示:

表6-12音乐模块文件存放路径

名称

类型

JSP

Music

存放位置

说明

myapp\music.jsp

管理员添加音乐顺序图如图6-12所示。

图6-12音乐模块顺序图

6.5视频分类模块

类文件存放的路径如表6-13所示:

6-13部分分类模块文件存放路径

名称

类型

存放位置

fragment\ClassificationFragment.java

Activity

activity\SearchResultActivity.java

Adapter

adapter\ClassGirdAdapter.java

视频分类适配器 查找结果页面

说明

视频分类菜单页面

ClassificationFragment Fragment

SearchResultActivity

ClassGirdAdapter

Menu JSP Jsp/music.jsp

fragment\ClassificationFragment.java

视频分类菜单页面

ClassificationFragment Fragment

SearchResultActivity

Activity activity\SearchResultActivity.java

查找结果页面

管理员添加视频分类信息顺序图如图6-14所示。

图6-14添加视频分类信息顺序图

6.6其他模块

文件存放的路径如表6-15所示:

表6-15其他文件存放路径

文件夹 文件夹

文件夹

app\src\main\res\drawable app\src\main\res\drawable-mdpi

app\src\main\res\layout

app\src\main\res\values

Drawable layout

value

(.xml)存放目录 资源图片存放目录 页面布局文件存放

目录

整体颜色、字符串、样式、尺寸文件存放

目录

阿里百川开发者秘

yw_1222 OneSDK\res\drawable\yw_1222.jpg

7系统实现 7.1用户模块

(1)欢迎页面如图7-1所示。 (2)用户登录页面如图7-2所示。

图7-1应用欢迎页 图7-2用户登录

7.2视频模块

(1)视频选择页面如图7-3所示。

(2)背景音乐加入视频渲染页面如图7-4所示。 (3)视频详情、评论、收藏、如图7-5所示。 (4)视频动态页面如图7-6所示。

图7-3选择本地视频文件

图7-4将背景音乐加入视频渲染页面

图7-5视频详情页面 图7-6视频动态页面

7.3焦点图模块

(1)首页焦点图展示页面如图7-7所示。

图7-7应用首页焦点图展示

7.4音乐模块

(1)用户查看音乐素材页面如图7-8所示。

7-8音乐素材列表页面

7.5视频分类模块

(1)所有视频分类页面如图7-9所示。

图7-9视频分类页面

鸣 谢

论文描述到此结束,这个毕业设计用了一个半月时间来完成,其中倾注着本人的努力和大学四年来所掌握课内课外的知识,也意味着大学生活即将结束。

在大学里,受到过学业的挫折,感受过来自家人或者外界的压力,但是这并没有让本人退缩,反而比往常花了更多时间在学习上,问题隐忍而解,困难都一一度过。最终尝到了学业进步的甜头,书山有路勤为径,学海无涯苦做舟,这激励着本人更大步的往前走。

缘分让我们聚在同一个地方,让远离故乡的游子多了一份依靠,同学们和老师的关心与关爱让师生们更像一大家子,其中要非常感谢同学们、宿友们的鼓励和支持、感谢老师们的殷殷教导、感谢远在他方的家人的关爱。

在大学四年中最让本人体会到的是除了基本的文化素养外,文化内涵也是我们要从中要学习和经历的必修课。我们认识的人、经历的事情,在心中有着不可磨灭的印象,如何与人相处,在某一件事情上如何正确的做出抉择,是否会对他人乃至社会造成影响,都要在道德的层面上考虑。因此文化内涵体现了一个人更深处的容貌。

本人现在已经踏入社会的旅程,深知如果没有大学四年的知识和经验作为铺垫,就很难在工作中站稳脚步,虽然我们离开了学校,但是也意味着我们进入了一个更大的学习环境,在这里同样会认识四海的朋友,有着更开阔的视野。在这社会的方舟里,仍然要保持前进的动力,谦虚学习。

没有泪水的苦涩就不会感受得到幸福的甘甜,本人在大学收获更多是欢笑、快乐,这其中有同学们打闹、也有老师说道的场景。往日重现,曾经指导过本人的老师们:郑苑丹老师、王晶老师、肖伟宏老师、朱旭东老师、张健老师、梁春林老师、孙羽老师、李振德老师、陈月峰老师、彭银桥老师、冯少金老师、范锐老师、付东洋老师....人生路上有你们,本人要在此对你们表示深深地敬意,感谢你们!!

这一切美好的经历、回忆都将保存在本人深深的脑海里,会成为本人在今后的人生道路上细细品味的风景。

参考文献

[1] 浅谈短视频app的发展趋势.(2015-12-21 ). http://www.cnblogs.com/anf/p/5065077.html

[2] Android学习系列(1)--为App签名(为apk签名).( 2011-04-09 ).

http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html [3] 阿里百川-多媒体文档服务.(2015-05-3)

http://baichuan.taobao.com/doc2/detail.htm?spm=0.0.0.0.XOQ5WE&treeId=38&articleId=102765&docType=1

[4] 趣拍安卓SDK开发文档 1.0.1版本.(2015-05-21) http://www.qupai.me/doc-android.html [5] 开源项目:XUtil详解.(2015-05-21)

http://blog.csdn.net/kun5069073/article/details/45645663

[6] Android基础教程(第3版) 伯内特(Ed Burnette)、黄湘情 人民邮电出版社.(2012-10-3)

[7]Android 2高级编程(第2版) 梅尔(Reto Meier)清华大学出版社.(2013-1-3) [8]精通Android 2 哈希米(Sayed Hashimi)、克曼特内尼(Satya Komatineni)、麦克莱恩(Dave MacLean)、 杨越 人民邮电出版社.(2010-4-6)

[9]Android系统原理及开发要点详解 韩超 梁泉 电子工业出版社.(2010-1-29) [10]深入浅出Google Android E2ECloud工作室 人民邮电出版社(.2009-8-11)

附 录

由于应用代码页数较多,这里挑选几段比较简洁的功能实现代码供大家参考和提出意见。

(1)音乐列表选中单击事件:

private void setUpView() {

id_listView = (ListView) findViewById(R.id.music_list); btn_confim = (Button) findViewById(R.id.btn_confim); btn_confim.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) {

Toast.makeText(QuPaiMoreMusicActivity.this, "目录:" + Constant.MUSIC_PATH_SECOND, Toast.LENGTH_LONG).show();

if (music_check == 9999) {

Toast.makeText(QuPaiMoreMusicActivity.this, "请选择一首歌曲", Toast.LENGTH_SHORT).show(); return;

} else if (!mData.get(music_check).isExist()) {

Toast.makeText(QuPaiMoreMusicActivity.this, "歌曲" +

mData.get(music_check).getMusicName() + "下载中...", Toast.LENGTH_SHORT).show();

download(Constant.MUSIC_PATH_SECOND + mData.get(music_check).getMusicName() + "/audio.mp3", mData.get(music_check).getMusicUrl());//下载音乐

} else if(mData.get(music_check).isExist()) {

Toast.makeText(QuPaiMoreMusicActivity.this, "歌曲" +

mData.get(music_check).getMusicName() + "已经加入效果...", Toast.LENGTH_SHORT).show(); if (qupaiService != null) {

Log.e(TAG,mData.get(music_check).getMusicName());

Log.e(TAG,Constant.MUSIC_PATH + mData.get(music_check).getMusicName()); qupaiService.addMusic(num, mData.get(music_check).getMusicName(), Constant.MUSIC_PATH + mData.get(music_check).getMusicName()); num += 1;

SharedPreferences sp = mContext.getSharedPreferences("actm", Context.MODE_PRIVATE);

SharedPreferences.Editor editor = sp.edit(); editor.putInt(Constant.MUSIC_NUM, num);

(2)发送请求并获取显示所有视频分类代码: private void init() {

RequestParams params=new RequestParams(Constant.IP_ADDRESS_WEB+"menuFindAllMenu.action"); x.http().post(params, new Callback.CommonCallback() {

@Override

public void onSuccess(String result) {

Log.e("HttpRequest", "结果:" + result);

Gson gson = new Gson();

List

mData = new ArrayList();

List

ps = gson.fromJson(result, new TypeToken>() {

}.getType());

for (int i = 0; i

Menu p = ps.get(i);

mData.add(p);

Log.e("", p.getMenuName() + "/n");

}

mAdapter = new ClassGirdAdapter(mData,getActivity());

id_listView.setAdapter(mAdapter);

Aniation a= AnimationUtils.loadAnimation(getActivity(), R.anim.video_end_show_image); id_listView.startAnimation(a);

if(result.isEmpty()) {

init();

}

}

@Override

public void onError(Throwable ex, boolean isOnCallback) {

}

@Override

- 35 -

(3)视频列表适配器风格一:

@Override

public View getView(int position, View convertView, ViewGroup parent) {

final Video item = mData.get(position);

if (convertView == null) {

convertView = LayoutInflater.from(mContext).inflate(

R.layout.activity_video_item01, null);

viewHolder = new ViewHolder();

viewHolder.iv_userhead = (ImageView) convertView.findViewById(R.id.iv_userhead); viewHolder.timestamp = (TextView) convertView.findViewById(R.id.timestamp);

viewHolder.iv_sendPicture = (ImageView) convertView.findViewById(R.id.iv_sendPicture); convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

x.image().bind(viewHolder.iv_userhead, item.getUser().getUserImage());

x.image().bind(viewHolder.iv_sendPicture, item.getVideoImage());

viewHolder.timestamp.setText(String.format(""+item.getVideoTime()));

viewHolder.iv_sendPicture.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(mContext, VideoDetailActivity.class);

Bundle bundle = new Bundle();

Log.e("适配器", "" + item.getVideoId());

bundle.putString("video_url", "" + item.getVideoUrl());

bundle.putString("videoid", "" + item.getVideoId());

intent.putExtras(bundle);

- 36 -

mContext.startActivity(intent);//打开activity }

});

return convertView;

}

static class ViewHolder {

TextView timestamp;

@ViewInject(R.id.iv_userhead) ImageView iv_userhead;

@ViewInject(R.id.iv_sendPicture) ImageView iv_sendPicture;

}

- 37 -

2016届本科生毕业设计

爱尚短视频社区APP的设计与实现

Design and Implementation of Love is a Short Video APP

学生姓名

所在学院

所在专业

申请学位

指导教师

副指导教师 钟炜堂 信息学院 学号 [1**********]1 班级 应用1123 软件工程 工学学士 郑苑丹 职称 职称 讲师

答辩时间

2016年6月4日

目 录

设计总说明 ................................................................................................................................. I INTRODUCTION ..................................................................................................................... II

1绪论 ......................................................................................................................................... 1

1.1项目开发背景和意义 ..................................................................................................... 1

1.2内容及拟解决的关键问题 ............................................................................................. 1

2相关技术 ................................................................................................................................. 2

2.1开发语言 ......................................................................................................................... 2

2.2开发工具 ......................................................................................................................... 2

2.3开发框架 ......................................................................................................................... 3

3总体概述 ................................................................................................................................. 3

3.1系统概述 ......................................................................................................................... 3

3.2项目需求 ......................................................................................................................... 4

3.3系统角色 ......................................................................................................................... 5

4系统功能 ................................................................................................................................. 6

4.1缩写和术语 ..................................................................................................................... 6

4.2用户模块 ......................................................................................................................... 6

4.3视频模块 ......................................................................................................................... 9

4.4焦点图模块 ................................................................................................................... 13

4.5音乐模块 ....................................................................................................................... 13

4.6视频分类模块 ............................................................................................................... 14

5数据库设计 ........................................................................................................................... 15

5.1数据库ER图。 ............................................................................................................. 15

5.2数据库表设计 ............................................................................................................... 16

6详细设计 ............................................................................................................................... 18

6.1用户模块 ....................................................................................................................... 18

6.2视频模块 ....................................................................................................................... 20

6.3焦点图展示模块 ........................................................................................................... 23

6.4音乐模块 ....................................................................................................................... 24

6.5视频分类模块 ............................................................................................................... 25

6.6其他模块 ....................................................................................................................... 26

7系统实现 ............................................................................................................................... 27

7.1用户模块 ....................................................................................................................... 27

7.2视频模块 ....................................................................................................................... 27

7.3焦点图模块 ................................................................................................................... 29

7.5视频分类模块 ............................................................................................................... 31

鸣 谢 ...................................................................................................................................... 32

参考文献 .................................................................................................................................. 33

设计总说明

移动短视频行业较传统网络视频行业,既没有巨大的带宽、服务器支出,也没有较高的版权购买支出,现在我们所熟悉的最热门APP都与短视频相关。因为短视频APP[1]圈住了如今爱美的女性,如果将其融入社交元素,就会使其得到更多人青睐。新兴的事物总能激起人们探索的好奇心,所以本人选择视频领域相关的课题,本课题的定位就在“人人都是明星”,视频界的“美图秀秀”。

本课题主要由以下五个模块组成,分别是:用户模块、视频模块、视频分类模块、音乐模块、首页焦点图展示模块;本课题将实现Android前端页面的开发、后台开发。前端开发语言是Java,开发环境Android Studio;后台开发环境MyEclipse;网络请求采用当前流行稳定的开源框架xUtil;引用第三方视频顺序图插件--趣拍;文件寄存于文件服务器--阿里百川;数据库使用Mysql。

下面是本课题的简要介绍:

(1)第一章为绪论部分,介绍了项目开发的意义和其背景,阐述了设计该项目的时候要解决的关键问题,为该课题的研究指明了明确的方向;

(2)第二章总体介绍了该设计使用到的相关技术,让大家大致了解该设计;

(3)第三章是本课题的总体简单概述,让阅读者们清晰的了解本课题要实现的内容;

(4)第四章主要是该设计的系统需求和功能分析;

(5)第五章主要是数据库设计;

(6)第六章是给出功能详细设计。

关键词:短视频;趣拍;阿里百川;Android Studio;

INTRODUCTION

INTRODUCTION

Mobile short video industry than traditional network video industry, neither spending huge bandwidth, server, also does not have the high of copyright purchase, now we are familiar with the most popular APP were associated with a short video. Short video in the APP now love beautiful women, if blend in the social elements, will make it get more and more people favor. This subject positioning in the "everyone is a star," video "beautiful picture show". In simple terms, this topic is to tell the public, it is a great camera - will clip, filters, watermark, music, high-definition merging into the five key elements in the MV effects, the video processing all complex late work, become a one-click simple operation. As long as the press, the ordinary can become beautiful MV video for a second.

This topic is mainly composed of the following five modules, respectively is: video module, user module, music library module, video classification module, homepage focus figure display module; This topic will implement the Android front end development, the development background of the page. The front-end development language is Java, Android development environment Studio; The background MyEclipse development environment; Network request is made of the current popular open source framework xUtil stability; Refer to the third party video processing plug-in - boring film; Document check in a file server - ali bacc the; Use the Mysql database.

Below is a brief introduction of the topic:

(1)The first chapter is the introduction part, this paper introduces the significance of project development and its background, this paper expounds the design of the project was to solve the key problems, pointed out the clear direction to the study of the subject;

(2)The second chapter introduces the general design used in related technology, let everybody know roughly how design;

(3)The third chapter is the analysis of the system requirements and function of the design, let the reader know more about this topic.

(4)The fourth chapter mainly abstracts the general design of system function structure; The fifth chapter is to give function design in detail.

(5)The fifth chapter mainly database design;

(6)The sixth chapter is to give function design in detail.

KEYWORDS: Short Video;Boring film;Ali bacc the;Android Studio;

爱尚短视频社区APP的设计与实现

软件工程,[1**********]1,钟炜堂

指导教师:郑苑丹

毕业设计说明书

1绪论

1.1项目开发背景和意义

随着电子技术的发展,网络速度的提升,人们对视频的消费方式开始愈发的变得多样化,传统的视频消费场所由电视逐步过渡到了网络上,对设备的需求也由电视机过渡到电脑,再到现在的智能手机,设备变得越发轻量级,消费方式也更加自由。自 youtube 以来,国内各种各样的视频门户网站比如 youku,爱奇艺等也层出不穷,人们的生活得到大大的丰富。

简单的说,本课题要告诉大众的就是,它是一款效果特棒的摄像机[1]——将剪辑,滤镜,水印,音乐,高清画质这五大要素融合成MV特效,把视频顺序图所有复杂的后期工作,变成一键式的简单操作。只要按一下,普通视频一秒就能变身精美MV。

在通过精密的用户体验分析后,将用户的拍摄行为限制在“8秒”的范围内[4],可以有效提高内容的优质性;其次,本课题将重视个人关系链数据,如关注数、粉丝数、互相关注数,注重互动的数据。尤其是互动,互动场景的延伸;基于以上的分析,爱尚短视频APP为大众量身定做一个方便好用的视频社交应用[2]。

本课题将实现如下五个模块的功能:用户模块、视频模块、分类模块、音乐模块、焦点图模块,其中课题将精选热门、明星、搞笑逗比、女神男神、音乐舞蹈、时尚美妆、美食创意、宝宝萌宠、二次元等好玩有趣的短视频!

1.2内容及拟解决的关键问题

本系统的Android端需要实现如下关键性问题。

(1)视频拍摄和特效处理[3]。

(2)视频编辑上传和播放。

(3)采用分布式文件服务器存储文件来减轻应用服务器的带宽。

(4)视频音乐库动态管理。

(5)视频菜单动态管理。

2相关技术

2.1开发语言

(1)Java

Java是一种通用的计算机编程语言,设计语言。它是为基于类的面向对象专门设计的,这区别于C语言的面向过程,它尽可能少的实现依赖关系,选择Java作为主要开发语言是由于其拥有较高的开发效率及较低的学习成本。 (2)XML

XML是基于树形结构的数据模型, 可扩展置标语言,可扩展标记语言。在安卓设计应用方面主要用于安卓界面Layout布局文件和Mainifest.xml配置文件。

2.2开发工具

1.Android Studio

Android Studio是 Android官方的IDE[10]。目的是帮助您为每个Android设备加快开发和构建高质量的应用程序。它为Android开发者提供量身定制的工具,包括丰富的代码编辑、调试、测试和分析工具。

它是一个灵活的Gradle-based构建系统[8],它是一个快速的和功能丰富的模拟器,它是一个集成的统一的环境,您可以在此平台开发Android设备;它的代码模板和GitHub集成帮助您构建共同应用特性和导入示例代码,他还具有广泛的测试工具和框架;内置支持谷歌的云平台,便于整合谷歌云消息和应用程序引擎;具备线头工具捕获性能、可用性、版本兼容性,和其他问题比如c++和NDK支持[7]。

2.MyEclipse

MyEclipse对于今天的现代企业开发人员是一个强大的Java EE IDE ;

MyEclipse提供一个智能和健壮的内容辅助引擎,不仅提供了几个完成类型,但也执行在不同的文件类型和Java一样,HTML、JavaScript和配置文件,从而帮助你节省很多时间打字。使用MyEclipse不需要经过复杂的搜索模式或穿过一组向导页面导航到你想要的资源。除了标准的Eclipse大纲视图外,还有许多其他的功能,使工作台内导航非常容易。MyEclipse Explorer不仅提供了一种简单的方法来快速定位文件和资源,还包括高级搜索和过滤功能。MyEclipse提供强大的企业发展与多个省时便利,帮助你代码高效和有效地导航项目

3.PhotoShop

它是是一款创造性的核心项目,也是世界上最好的成像和设计程序,可以创建创建

任何你可以想象的画面。用户可以使用桌面和移动设备来创建和优化照片,也可以使用它作为网站设计和手机应用程序设计、3 d作品设计、视频设计等等的辅助工具。

4.Adobe Dreamweaver

世界上最完整的网站开发工具集,网页设计师和前端开发人员可以使用其创建代码和管理网站,他可以开发适应于任何大小的屏幕上的网页,实时预览网页,看效果是否符合需求或者是否匹配不同屏幕大小。

5.Camtasia Studio

Camtasia是一款特棒的视频编辑工具,它是TechSmith旗下一款专门录制屏幕动作和制作视频的工具, Camtasia集成多种视频处理工具的功能但是界面并且轻便,容易上手;它允许您在你的电脑屏幕上记录视频。用它来制作教程、精美视频或产品演示。把屏幕录音变成引人注目的视频 。

2.3开发框架

1.xUtil

xUtils 最初源于Afinal框架[5],进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响;xUtils最低兼容android 2.2 (api level 8),当前xUtils主要有四大模块:

(1)DbUtils模块:android中的orm框架,一行代码就可以进行增删改查;

(2)ViewUtils模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;

(3)HttpUtils模块:支持同步,异步方式的请求;支持大文件上传,上传大文件不会内存溢出;

(4)BitmapUtils模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;

2.Spring + Struts +Hibernate

Spring框架提供了一个全面的现代java企业应用程序编程和配置模型部署平台Spring集中在企业应用程序的“管道”,团队可以专注于应用程序的业务逻辑,没有不必要的关系到特定的部署环境。核心支持依赖注入、事务管理、web应用程序中,数据访问、消息传递、测试等等。

Apache Struts是一个免费,开源,MVC框架支持现代Java web应用程序。它有利于约定优于配置,是一个可扩展插件的架构,附带插件支持AJAX和JSON。

Hibernate适用于关系数据库,作为一个对象/关系映射(ORM)框架。

3总体概述

3.1系统概述

爱尚视频APP精选了热门、明星、搞笑逗比、女神男神、音乐舞蹈、时尚美妆、

美食创意、宝宝萌宠、二次元等好玩有趣的短视频!客户端实现了包括视频拍摄、视频优化、视频上传、视频查找、视频分类、首页推荐、视频收藏、视频评论、视频推荐、用户动态、用户关注、音乐素材、焦点图展示等功能。系统功能结构图如图3-1所示。

图3-1系统功能结构图

本系统的所有文件包括上传的视频和音乐、图片都保存在阿里文件服务器中,这样可以避免自己搭建分布式文件服务器的困扰,还尽可能的节省web应用服务器的带宽和消耗,所有数据保存在数据库中供安卓手机终端获取,所以,本设计的系统架构图如图3-2所示。

安卓手机终端

安卓手机终端

数据库服务器

图3-2系统架构图

3.2项目需求

其系统业务用例描述如表3-1所示:

表3-1系统总体用例描述

系统业务 视频拍摄 视频优化 视频上传 视频查找 视频分类 首页推荐 视频收藏 视频评论 用户动态 用户关注

用例概述

用户自拍一段视频;或者从手机端选择一段视频;

用户选择美颜等级;选择背景音乐;选择渲染效果;生成视频; 用户完善视频信息后(标题、描述、分类、封面)上传视频; 可以按照视频名称进行搜索视频;

可以查看视频分类、点击分类查看相应的视频列表; 首页展示推荐的优秀视频列表;

用户可选择对喜欢的视频进行收藏;可以查看自己的收藏列表; 用户可对看后视频发表自己的想法;可以查看该视频的所有评论; 所有用户最新发表的视频动态;点击可进入视频详情;

用户可对喜欢的投稿者进行关注;可以查看自己或对方的粉丝或者追随着;

音乐素材 焦点图广告 查看资料 登录注册 管理员管理 视频拍摄

文件服务器保存了音乐素材,供用户下载使用; 首页展示了三张焦点图;

用户可查看并管理自己的资料(包括上传头像); 用户登录和注册;

管理员对视频分类、音乐素材、焦点图广告进行管理; 用户自拍一段视频;或者从手机端选择一段视频;

3.3系统角色

本系统角色包括普通用户和后台管理员。普通用户的主要功能是视频拍摄、视频优化、视频上传、视频查找、视频收藏、视频评 论、用户关注等;管理员的主要功能是添加音乐素材、添加视频分类、添加焦点图广告等。角色功能及权限描述如表3-2所示。

表3-2 系统角色表

角色 普通用户

角色描述

(1)拥有拍摄上传视频的权限; (2)拥有查看普通用户信息的权限; (3)拥有关注喜欢的用户权限; (4)拥有登录与注册的权限; (5)拥有下载音乐素材的权限; (6)拥有搜索视频的权限; (7)拥有查看视频信息的权限; (8)拥有收藏喜欢的视频的权限; (9)拥有评论视频的权限

管理员

(1)拥有管理音乐库的权限; (2)拥有管理视频分类的权限; (3)拥有管理视频公告的权限;

4系统功能 4.1缩写和术语

缩写与术语如表4-1所示:

表4-1缩写与术语

缩写、术语 REGISTER LOGIN ALTER_USER_INFO

USERFOCU UPLOADVIDEO VIDEODETIAL VIDEOCOLLECT VIDEOCOMMENT VIDEOMENU MUSIC_METERIAL ADVERTISEMENT

解释 注册 登陆 修改个人信息 用户关注 拍摄上传视频 查看视频详情 收藏视频 评论视频 分类信息管理 音乐素材管理 焦点图管理

4.2用户模块

用户模块功能分别为注册登录、查看和修改个人信息、用户关注,用例图如图4-1

所示。

图4-1用户模块用例图

4.2.1注册

系统显示注册页面,提示用户输入,对于必填项不能为空,注册账号不存在于已注册信息里,符合要求的注册信息可以提交成功并提示注册成功。用户注册用例规约如表4-1所示。

表4-1普通用户注册用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

用户注册 REGISTER 注册用户

普通用户下载APP并注册一个新账号。 处于注册页面并保持网络打开; (1)打开APP,进入注册页面;

(2)输入自定义账号和密码、验证两次输入的密码是否一致、验证帐号是否已经被注册。

(3)注册成功,服务端返回消息,切换到登陆页面。

其他事件流

(1)若密码不一致,则重新输入密码; (2)若账号已经存在,则提示用户;

异常事件流 后置条件

网络异常

User表新增一条用户记录

用例概述

4.2.2登陆

用户进入登录页面,填写个人登录信息,登陆用例规约如表4-2所示。

表4-2普通用户和管理员登陆用例规约

系统业务 用例名称 用例ID 角色 用例说明

登陆 LOGIN

普通用户,管理员

普通用户在使用应用的功能前必须登录APP应用;管理员在操作后台数据前需要打开网页登录界面进行登录;

前置条件 基本事件流

处于登陆页面并保持网络打开; (1)在登陆页面输入帐号密码;

(2)验证用户账号和密码,同时弹出等待动画; (3)登陆成功后动画延迟两秒消失,进入应用;

其他事件流 异常事件流 后置条件

账号密码不正确,提示重新输入; 网络断开

(1)普通用户登录到应用主界面; (2)管理员登录到后台添加页面

用例概述

4.2.3修改个人资料

用户进入个人信息编辑页面,修改个人信息用例规约如表4-3所示。

表4-3 普通用户修改个人信息用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

修改个人信息 ALTER_USER_INFO 普通用户

用户选择修改个人头像、昵称、签名 登陆后并处于个人资料修改页面

(1)系统已经默认为用户显示原来的文字信息和头像,用户只需选择修改文字信息,或者只上传新头像;

(2)输入完成后点击保存,服务端返回消息; (3)弹窗告知用户修改资料成功;

其他事件流 异常事件流

保存失败,弹窗提示用户资料未改动,; (1)网络错误

用例概述

后置条件

User表用户信息更新

4.2.4用户关注

用户进入她人的主页,点击关注按钮。用户关注用例规约如表4-4所示:

表4-4普通用户关注用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

用例概述 用户关注 USERFOCU 注册用户

对喜欢的用户可进行关注,关注后就是她的粉丝了。 未关注过该用户

(1)进入她的主页,点击关注按钮添加关注,服务端返回结果。 (2)点击她的粉丝数量,就可以看到她的粉丝列表里面有你。 (3)点击她的关注数量,就可以看到她的关注用户列表有没有你。 (4)在我的主页中点击我的关注数量也可以查看我的关注人群,点击我的粉丝数量可以查看关注我的人。

(5)在关注列表或者粉丝列表点击单项,又可以进入对应的用户主页,你可以继续对他操作。 (6)可对其取消关注。

其他事件流 异常事件流 后置条件

关注失败后状态不更新 网络断开

数据库follow表新增一条关注记录

4.3视频模块

该子功能包括5个子功能,分别为拍摄上传视频、查看视频详情、评论视频、收藏视频、搜索视频,用例图如图4-5所示。

图4-5视频模块用例图

4.3.1拍摄上传视频

拍摄上传视频用例规约如表4-6所示。

表4-6 拍摄上传视频用例规约

系统业务 用例名称 用例ID 角色 用例说明

拍摄上传视频 UPLOADVIDEO 普通用户

用户拍摄一段小视频或者从本地选择视频,视频经过特效编辑后上传到服务器。

前置条件

手机必须支持摄像头拍摄,安卓版本大于4.4 手机拍摄最长时间为8秒,最短时间2秒 手机外置存储卡空闲空间不小于10M 上传视频必须保持网络畅通

基本事件流

(1)用户打开拍摄页面,可选择本地视频文件、可选择历史保存的拍摄草稿、可选择0-100的美颜参数,可选择自动延迟拍摄、支持镜头反转。 (2)用户拍摄一段视频后进入视频编辑页面,可选择7种视频渲染风格、可选择消除原声或降低音量、可选择加入本地背景音乐进行视频渲染、也可以进入音乐库选择下载音乐背景素材;

(3)完成后点击生成视频,视频合成后跳转到资料完善页面,在这里可以观看刚合成的视频和视频封面,然后填写标题和描述;

用例概述

(4)点击下一步,进入视频上传页面,在这里点击列表单项选择视频分类后就可以提交了;

(5)页面显示视频的上传进度,显示封面的上传进度,上传完成后提示用户; 用户可以在个人主页查看自己的投稿视频列表,列表可点击进入视频详情

其他事件流

(1)用户取消录制视频

(2)用户录制视频后取消编辑操作 (3)视频生成后用户取消上传

异常事件流

(1)网络故障

(2)手机内存和cpu消耗大

后置条件

Video表新增一条视频信息

4.3.2查看视频详情

用户可以从多种途径进入视频详细页面包括(收藏列表、投稿箱、首页推荐、用户动态、分类搜索、名称搜索等),查看视频详情用例规约如表4-7所示。

表4-7 查看视频详情用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

查看视频详情 VIDEODETIAL 注册用户

普通用户从多个页面进去视频首页查看视频详情 该视频有效

(1)用户点击自己或者他人的的收藏列表进入。 (2)用户点击自己或者他人的投稿列表进入。

(3)用户点击分类搜索页面,在搜索结果返回列表进入。 (4)用户根据视频名称搜索视频,在搜索结果返回列表点击进入。 (5)用户在应用首页推荐列表点击进入。 (6)用户在应用用户动态列表点击进入。 (7)在视频详情页可点击播放视频。

其他事件流 异常事件流

(1)视频不存在 (2)网络断开

后置条件

显示视频详情

用例概述

4.3.3评论视频

在视频详情页面,用户单击评论按钮,跳转到输入页面,输入完成后单击提交即可保存。评论视频用例规约如表4-8所示:

表4-8评论视频用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

评论视频 VIDEOCOMMENTS

用例概述

注册用户

普通用户对某一视频发表观后感、想法、改进意见 输入评论内容

(1)输入评论内容,判断内容是否为空。 (2)服务端返回结果,弹窗提示评论成功。

(3)应用自动刷新评论列表,用户可以看到自己的评论。

其他事件流 异常事件流 后置条件

评论保存失败 网络断开

Comment表新增一条信息

4.3.4收藏视频

在视频详情页面,用户单击收藏按钮,即可保存。收藏视频用例规约如表4-9所示。

表4-9收藏视频用例规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

收藏视频 VIDEOCOLLECT 注册用户

普通用户选择对自己喜欢的视频添加收藏 网络畅通

(1)进入视频详情页面。

(3)点击收藏图标,服务端返回收藏结果。

(4)用户可选择返回查看自己的收藏列表,列表可点击。

(5)用户可以在他人主页查看他人的收藏列表,列表可点击进入对应的视频详情页。

(6)视频可取消收藏。

其他事件流 异常事件流

收藏失败 无

用例概述

后置条件

4.4焦点图模块

该公告主要应用于用户访问APP首页时看到的焦点图, 管理员可以在后台页面加入新公告,用例图如图4-10所示。

管理员

普通用户

图4-10焦点图模块用例图

焦点图管理用例规约如表4-11所示:

表4-11 首页焦点图管理规约

系统业务 用例名称 用例ID 角色 用例说明

焦点图管理 ADVERTISEMENT 管理员、普通用户

管理员在后台新增管理公告图片,客户端动态加载三张焦点图,用于首页轮播,焦点图有以下用途(节日祝福、服务器维修公告、应用活动、插播广告)

前置条件 基本事件流

(1)管理员登陆。

(2)管理员在后台添加新的焦点图,并且完善信息,保存即可。 (3)普通用户使用app在首页轮播中看到焦点图。

其他事件流 异常事件流 后置条件

无 无 无

用例概述

4.5音乐模块

音乐素材是免费提供给用户使用的(用于拍摄视频的后期渲染)。 管理员可以在后台页面加入新素材,用例图如图4-12所示。

管理员

普通用户

图4-12音乐模块用例图

音乐模块用例规约如表4-13所示:

表4-13 音乐素材管理规约

系统业务 用例名称 用例ID 角色 用例说明 前置条件 基本事件流

音乐素材管理 MUSIC_METERIAL 管理员、普通用户 音乐素材是给用户使用的 无

(1)管理员在后台上传mp3格式的音乐和音乐封面,完善信息后保存提交。 (2)普通用户在音乐素材下载页面可以看到新的提交,下载后可使用。 (3)用户打开app查看音乐列表,下载后加入视频渲染,添加到需要上传的视频中。

其他事件流 异常事件流 后置条件

用户下载失败,重新下载 无 无

用例概述

4.6视频分类模块

管理员可以对视频分类进行添加,添加后用户可以看到,用例图4-13所示。

管理员

普通用户

图4-13视频分类用例图

视频分类管理用例规约如表4-14所示:

表4-14 视频分类管理规约

系统业务 用例名称 用例ID 角色 用例说明

视频分类管理 VIDEO_MENU 管理员,普通用户

管理员在后台添加视频分类,用户使用app可以查看分类,可以点击分类搜索视频,可以在上传视频前选择一个分类

前置条件 基本事件流

(1)管理员添加分类信息后保存提交。

(2)普通用户在视频分类页面和上传视频页面都能看到并使用新的分类提交。

用例概述

其他事件流 异常事件流 后置条件

无 无 无

5数据库设计 5.1数据库ER图

数据库ER图如图5-1所示。.

图-5.1数据库ER图

5.2数据库表设计

User 用户:记录用户的相关信息

表5-1 User数据表

字段名 User_id Role_id User_count User_pass User_name User_sex User_description

User_age User_image Rank_end_time

类型 Int(20) Int(20) Varchar(20) Varchar(20) Varchar(20) Varchar(20) Varchar(200) Varchar(20) Varchar(200) datetime

可为空 F F F F F F T T F T

描述 用户id 角色id 用户帐号 密码 昵称 性别 签名 年龄 头像 到期时间

字段描述 主键 外键

Video视频:记录视频的基本信息

表5-2 Video视频信息表

字段名

类型

可为空

描述

字段描述

Video_id User_id Menu_id Video_name Video_description

Video_url Video_image Video_time Video_click

Int(20) Int(20) Int(20) Varchar(20) Varchar(200) Varchar(200) Varchar(200) datetime Int(20)

F F F F F F F F F

视频id 用户id 分类id 名称 描述 链接 视频封面 发布时间 播放数量

主键 外键 外键

Comment 评论:记录用户评论信息

表5-3 视频评论表

字段名 Comment_id User_id Video_id Comment_content Comment_time

类型 int(20) int(20) int(20) varchar(255) datetime

可为空 F F F F T

描述 评论id 用户id 视频id 内容 评论时间

字段描述 主键 外键 外键

follow 关注:记录用户之间关系

表5-5 用户关注表

字段名 Follow_id Follow_user_id Beollow_user_id

类型 int(20) int(20) int(20)

可为空 F F F

描述 关注id 关注者id 被关注者id

字段描述 主键 外键 外键

Menu视频分类:所有视频的分类

表5-6视频分类菜单表

字段名 Menu_id Menu_name

类型 Int(20) Varchar(20)

可为空 F F

描述 菜单id 名称

字段描述 主键

Parent_count Menu_count

Varchar(20) Varchar(20)

T T

父类编号 自身编号

Collect收藏:记录用户收藏的视频

表5-7视频收藏表

字段名 Collect_id User_id Video_id

类型 Int(20) Int(20) Int(20)

可为空 F F F

描述 收藏id 收藏者id 被收藏视频

id

字段描述 主键 外键 外键

Role:角色信息

表5-8用户角色表

字段名 Role_id Role_name 类型 Int(20) Varchar(20) 可为空 F F 描述 角色id 角色名称 字段描述 主键

Music:音乐库,记录后台保存的音乐信息

表5-8音乐素材表

字段名 Music_id Music_url Music_image Music_name

类型 Int(20) Varchar(200) Varchar(200) Varchar(20)

可为空 F F F F

描述 音乐id 音乐路径 封面路径 音乐名称

字段描述 主键

Advertisement:焦点图信息

表5-9焦点图信息表

字段名 Advertise_id Advertise_name Advertise_image Advertise_action

类型 Int(20) Varchar(20) Varchar(200) Varchar(200)

可为空 F T F T

描述 公告id 公告名称 图片路径 动作

字段描述 主键

6详细设计 6.1用户模块

类文件存放路径如表6-1所示:

表6-1用户模块模块文件存放路径

名称

RegisterActivity

MyInfoActivity MyInfoEditActivi

ty ImageUploadActiv

ity

SheInfoActivity

UserListActivity

UserListAdapter

类型

Activity Activity Activity

存放位置

activity\RegisterActivity.java activity\MyInfoActivity.java

说明

注册页面 个人主页

更改个人信息

页面

头像上传页

activity\MyInfoEditActivity.java

Activity activity\ImageUploadActivity.java

Activity Activity Adapter activity\SheInfoActivity.java activity\UserListActivity.java adapter\UserListAdapter.java

用户主页 用户关注列表、粉丝列表 用户列表适配

器 为了保障数据的可追踪性,用户只能在已经注册的前提下登陆应用,才能使用接下来的功能,注册登录顺序图如图6-2所示。

当用户对其他用户感兴趣时,可以选择对他进行关注,这样就可以在关注列表中查

看到该用户,用户关注顺序图如图6-3所示。

图6-3用户关注顺序图

用户可以进入个人主页查看自己的全部信息,并且选择修改个人信息包括更换头像等,查看和修改用户信息顺序图如图6-4所示。

图6-4查看和修改用户信息顺序图

6.2视频模块

(1)类文件存放的路径,如表6-5所示:

表6-5视频模块文件存放路径

名称 类型 存放位置 说明

QuPaiMainActivity2 Activity activity\QuPaiMainActivity2.java

VideoEditInfoActivi

ty

Activity activity\VideoEditInfoActivity.java

三方服务(Service) 拍摄前后的事务逻辑顺序图

视频上传前的信息完善类 视频详情页 视频播放页面 投稿视频列表

子页 视频收藏列表

子页

VideoDetailActivity

Activity Activity

Fragment

activity\VideoDetailActivity.java activity\VideoPlayerActivity.java fragment\MyVideoListFragment.java fragment\CollectFragment.java

VideoPlayerActivity

MyVideoListFragment

CollectFragment

Fragment

用户拍摄了一段视频后选择上传保存,拍摄视频上传顺序图如图6-6所示。

图6-6拍摄上传视频顺序图

查看视频详情顺序图如图6-7所示。

图6-7查看视频详情顺序图

视频收藏顺序图如图6-8所示。

视频评论顺序图如图6-9所示。

图6-9

视频评论顺序图6.3焦点图展示模块

类文件存放的路径如表6-10所示:

表6-10焦点图模块文件存放路径

名称

FocusPictureFrag

men

Advertisement

Advertisement

类型

Fragment

存放位置

fragment\FocusPictureFragment.java

说明

焦点图子页面

PO JSP

app\src\main\java\entity\

Advertisement.java

myapp\jsp 焦点图PO

管理员添加焦点图顺序图如图6-11所示。

图6-11添加焦点图顺序图

6.4音乐模块

类文件存放的路径如表6-12所示:

表6-12音乐模块文件存放路径

名称

类型

JSP

Music

存放位置

说明

myapp\music.jsp

管理员添加音乐顺序图如图6-12所示。

图6-12音乐模块顺序图

6.5视频分类模块

类文件存放的路径如表6-13所示:

6-13部分分类模块文件存放路径

名称

类型

存放位置

fragment\ClassificationFragment.java

Activity

activity\SearchResultActivity.java

Adapter

adapter\ClassGirdAdapter.java

视频分类适配器 查找结果页面

说明

视频分类菜单页面

ClassificationFragment Fragment

SearchResultActivity

ClassGirdAdapter

Menu JSP Jsp/music.jsp

fragment\ClassificationFragment.java

视频分类菜单页面

ClassificationFragment Fragment

SearchResultActivity

Activity activity\SearchResultActivity.java

查找结果页面

管理员添加视频分类信息顺序图如图6-14所示。

图6-14添加视频分类信息顺序图

6.6其他模块

文件存放的路径如表6-15所示:

表6-15其他文件存放路径

文件夹 文件夹

文件夹

app\src\main\res\drawable app\src\main\res\drawable-mdpi

app\src\main\res\layout

app\src\main\res\values

Drawable layout

value

(.xml)存放目录 资源图片存放目录 页面布局文件存放

目录

整体颜色、字符串、样式、尺寸文件存放

目录

阿里百川开发者秘

yw_1222 OneSDK\res\drawable\yw_1222.jpg

7系统实现 7.1用户模块

(1)欢迎页面如图7-1所示。 (2)用户登录页面如图7-2所示。

图7-1应用欢迎页 图7-2用户登录

7.2视频模块

(1)视频选择页面如图7-3所示。

(2)背景音乐加入视频渲染页面如图7-4所示。 (3)视频详情、评论、收藏、如图7-5所示。 (4)视频动态页面如图7-6所示。

图7-3选择本地视频文件

图7-4将背景音乐加入视频渲染页面

图7-5视频详情页面 图7-6视频动态页面

7.3焦点图模块

(1)首页焦点图展示页面如图7-7所示。

图7-7应用首页焦点图展示

7.4音乐模块

(1)用户查看音乐素材页面如图7-8所示。

7-8音乐素材列表页面

7.5视频分类模块

(1)所有视频分类页面如图7-9所示。

图7-9视频分类页面

鸣 谢

论文描述到此结束,这个毕业设计用了一个半月时间来完成,其中倾注着本人的努力和大学四年来所掌握课内课外的知识,也意味着大学生活即将结束。

在大学里,受到过学业的挫折,感受过来自家人或者外界的压力,但是这并没有让本人退缩,反而比往常花了更多时间在学习上,问题隐忍而解,困难都一一度过。最终尝到了学业进步的甜头,书山有路勤为径,学海无涯苦做舟,这激励着本人更大步的往前走。

缘分让我们聚在同一个地方,让远离故乡的游子多了一份依靠,同学们和老师的关心与关爱让师生们更像一大家子,其中要非常感谢同学们、宿友们的鼓励和支持、感谢老师们的殷殷教导、感谢远在他方的家人的关爱。

在大学四年中最让本人体会到的是除了基本的文化素养外,文化内涵也是我们要从中要学习和经历的必修课。我们认识的人、经历的事情,在心中有着不可磨灭的印象,如何与人相处,在某一件事情上如何正确的做出抉择,是否会对他人乃至社会造成影响,都要在道德的层面上考虑。因此文化内涵体现了一个人更深处的容貌。

本人现在已经踏入社会的旅程,深知如果没有大学四年的知识和经验作为铺垫,就很难在工作中站稳脚步,虽然我们离开了学校,但是也意味着我们进入了一个更大的学习环境,在这里同样会认识四海的朋友,有着更开阔的视野。在这社会的方舟里,仍然要保持前进的动力,谦虚学习。

没有泪水的苦涩就不会感受得到幸福的甘甜,本人在大学收获更多是欢笑、快乐,这其中有同学们打闹、也有老师说道的场景。往日重现,曾经指导过本人的老师们:郑苑丹老师、王晶老师、肖伟宏老师、朱旭东老师、张健老师、梁春林老师、孙羽老师、李振德老师、陈月峰老师、彭银桥老师、冯少金老师、范锐老师、付东洋老师....人生路上有你们,本人要在此对你们表示深深地敬意,感谢你们!!

这一切美好的经历、回忆都将保存在本人深深的脑海里,会成为本人在今后的人生道路上细细品味的风景。

参考文献

[1] 浅谈短视频app的发展趋势.(2015-12-21 ). http://www.cnblogs.com/anf/p/5065077.html

[2] Android学习系列(1)--为App签名(为apk签名).( 2011-04-09 ).

http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html [3] 阿里百川-多媒体文档服务.(2015-05-3)

http://baichuan.taobao.com/doc2/detail.htm?spm=0.0.0.0.XOQ5WE&treeId=38&articleId=102765&docType=1

[4] 趣拍安卓SDK开发文档 1.0.1版本.(2015-05-21) http://www.qupai.me/doc-android.html [5] 开源项目:XUtil详解.(2015-05-21)

http://blog.csdn.net/kun5069073/article/details/45645663

[6] Android基础教程(第3版) 伯内特(Ed Burnette)、黄湘情 人民邮电出版社.(2012-10-3)

[7]Android 2高级编程(第2版) 梅尔(Reto Meier)清华大学出版社.(2013-1-3) [8]精通Android 2 哈希米(Sayed Hashimi)、克曼特内尼(Satya Komatineni)、麦克莱恩(Dave MacLean)、 杨越 人民邮电出版社.(2010-4-6)

[9]Android系统原理及开发要点详解 韩超 梁泉 电子工业出版社.(2010-1-29) [10]深入浅出Google Android E2ECloud工作室 人民邮电出版社(.2009-8-11)

附 录

由于应用代码页数较多,这里挑选几段比较简洁的功能实现代码供大家参考和提出意见。

(1)音乐列表选中单击事件:

private void setUpView() {

id_listView = (ListView) findViewById(R.id.music_list); btn_confim = (Button) findViewById(R.id.btn_confim); btn_confim.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View v) {

Toast.makeText(QuPaiMoreMusicActivity.this, "目录:" + Constant.MUSIC_PATH_SECOND, Toast.LENGTH_LONG).show();

if (music_check == 9999) {

Toast.makeText(QuPaiMoreMusicActivity.this, "请选择一首歌曲", Toast.LENGTH_SHORT).show(); return;

} else if (!mData.get(music_check).isExist()) {

Toast.makeText(QuPaiMoreMusicActivity.this, "歌曲" +

mData.get(music_check).getMusicName() + "下载中...", Toast.LENGTH_SHORT).show();

download(Constant.MUSIC_PATH_SECOND + mData.get(music_check).getMusicName() + "/audio.mp3", mData.get(music_check).getMusicUrl());//下载音乐

} else if(mData.get(music_check).isExist()) {

Toast.makeText(QuPaiMoreMusicActivity.this, "歌曲" +

mData.get(music_check).getMusicName() + "已经加入效果...", Toast.LENGTH_SHORT).show(); if (qupaiService != null) {

Log.e(TAG,mData.get(music_check).getMusicName());

Log.e(TAG,Constant.MUSIC_PATH + mData.get(music_check).getMusicName()); qupaiService.addMusic(num, mData.get(music_check).getMusicName(), Constant.MUSIC_PATH + mData.get(music_check).getMusicName()); num += 1;

SharedPreferences sp = mContext.getSharedPreferences("actm", Context.MODE_PRIVATE);

SharedPreferences.Editor editor = sp.edit(); editor.putInt(Constant.MUSIC_NUM, num);

(2)发送请求并获取显示所有视频分类代码: private void init() {

RequestParams params=new RequestParams(Constant.IP_ADDRESS_WEB+"menuFindAllMenu.action"); x.http().post(params, new Callback.CommonCallback() {

@Override

public void onSuccess(String result) {

Log.e("HttpRequest", "结果:" + result);

Gson gson = new Gson();

List

mData = new ArrayList();

List

ps = gson.fromJson(result, new TypeToken>() {

}.getType());

for (int i = 0; i

Menu p = ps.get(i);

mData.add(p);

Log.e("", p.getMenuName() + "/n");

}

mAdapter = new ClassGirdAdapter(mData,getActivity());

id_listView.setAdapter(mAdapter);

Aniation a= AnimationUtils.loadAnimation(getActivity(), R.anim.video_end_show_image); id_listView.startAnimation(a);

if(result.isEmpty()) {

init();

}

}

@Override

public void onError(Throwable ex, boolean isOnCallback) {

}

@Override

- 35 -

(3)视频列表适配器风格一:

@Override

public View getView(int position, View convertView, ViewGroup parent) {

final Video item = mData.get(position);

if (convertView == null) {

convertView = LayoutInflater.from(mContext).inflate(

R.layout.activity_video_item01, null);

viewHolder = new ViewHolder();

viewHolder.iv_userhead = (ImageView) convertView.findViewById(R.id.iv_userhead); viewHolder.timestamp = (TextView) convertView.findViewById(R.id.timestamp);

viewHolder.iv_sendPicture = (ImageView) convertView.findViewById(R.id.iv_sendPicture); convertView.setTag(viewHolder);

} else {

viewHolder = (ViewHolder) convertView.getTag();

}

x.image().bind(viewHolder.iv_userhead, item.getUser().getUserImage());

x.image().bind(viewHolder.iv_sendPicture, item.getVideoImage());

viewHolder.timestamp.setText(String.format(""+item.getVideoTime()));

viewHolder.iv_sendPicture.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(mContext, VideoDetailActivity.class);

Bundle bundle = new Bundle();

Log.e("适配器", "" + item.getVideoId());

bundle.putString("video_url", "" + item.getVideoUrl());

bundle.putString("videoid", "" + item.getVideoId());

intent.putExtras(bundle);

- 36 -

mContext.startActivity(intent);//打开activity }

});

return convertView;

}

static class ViewHolder {

TextView timestamp;

@ViewInject(R.id.iv_userhead) ImageView iv_userhead;

@ViewInject(R.id.iv_sendPicture) ImageView iv_sendPicture;

}

- 37 -


相关内容

  • 最新版广东海洋大学本科生毕业论文模板
  • 本科生毕业论文 浅析惠州市社区卫生服务的现状与对策 Present Situation and Countermeasures of Community Health Service in Huizhou City 学生姓名 所在专业 所在班级 申请学位 指导教师 副指导教师 答辩时间 管理学学士学 ...

  • 中国沿海城市国有大学有哪些[1]
  • 中国沿海城市国有大学有哪些 大连:大连理工大学.东北财经大学.大连大学.大连外国语大学.大连交通大学 锦州:渤海大学 秦皇岛:燕山大学.东北大学秦皇岛分校 天津:天津大学.南开大学.天津财经/理工/科技/工业大学 烟台:鲁东大学 威海:山东大学威海分校.哈工大威海分校 青岛:中国海洋大学.青岛大学. ...

  • 广东省本科学校结构.布局与区域经济社会发展的关系研究
  • 摘要:鉴于本科学校的结构.布局与经济社会发展有着重要相互影响与作用的关系,通过文献研究.调查研究.比较研究.数理统计等方法,发现广东省本科学校结构.布局在省域层面与人口规模.经济规模和产业结构均具有相关性,但在各区域层面这种相关性的表现程度不一;同时,无论在省域层面还是在各区域层面,广东省本科学校结 ...

  • 湖北省2010年普通高校招生第二批本科及招收中职毕业本科录取院校第一志愿投档线
  • 湖北省2010年普通高校招生第二批本科录取院校第 一志愿投档线 代号[***********][***********][***********][***********][***********][***********][***********][***********]2760 院校名称解放军 ...

  • 基于B2C的沃尔玛超市商品销售与管理系统
  • 本科生毕业设计 基于B2C的沃尔玛超市商品销售与管理系统 CommoditiesSaleandManagementSystem BasedonB2CforWal-MartSupermarket 学生姓名 所在专业 所在班级 申请学位 指导教师 副指导教师 答辩时间2011年彭伟民工学学士职称职称6月 ...

  • 广东省比较好的2A,2B,3A.3B院校
  • 广东省比较好的2A,2B,3A.3B 院校 转载别人的 仅供参考 具体情况私聊各自高校师兄师姐 广东省比较好的2A,2B,3A.3B 院校(是时候看看了吧!!) 五邑大学 深圳大学 广东医学院 广东金融学院 惠州学院 嘉应学院 广东海洋大学 广州中医药大学 广州医学院 韶关学院 广东海洋大学 湛江师 ...

  • 包装工程开设院校1
  • 包装工程专业开设院校(排名不分先后) 武汉大学(印刷与包装工程系) 北京林业大学 (材料科学与技术学院) 郑州大学(材料科学与工程学院) 浙江理工大学(材料与纺织学院) 上海大学(机电工程与自动化学院) 天津科技大学(包装与印刷工程学院) 天津商业大学(机械工程学院) 江南大学(机械工程学院) 广西 ...

  • 广东海洋大学寸金学院会计系本科毕业论文选题参考
  • 广东海洋大学寸金学院会计系本科毕业论文选题参考 (一)会计 1.论会计本质 2.会计职能问题研究 3.论会计目标 4.会计要素的确认问题 5.会计计量探讨 6.浅谈会计核算的基本前提 7.会计信息质量要求研究 8.也谈会计恒等式的作用 9.对收入与利得.费用与损失的探讨 10.论会计本质.职能.目标 ...

  • 食品科学与工程就业前景
  • 食品科学与工程就业前景 食品科学与工程专业是以食品科学和工程科学为基础,研究食品的营养健康.工艺设计与社会生产,食品的加工贮藏与食品安全卫生的学科,是生命科学与工程科学的重要组成部分,是连接食品科学与工业工程的重要桥梁. 随着世界人口膨胀带来的粮食危机不断加剧,以及食品领域大工业化时代的到来和人们对 ...

  • 最高院指导性案例
  • 最高人民法院关于发布第八批指导性案例的通知 法"2014"327号 各省.自治区.直辖市高级人民法院,解放军军事法院,新疆维吾尔自治区高级人民法院生产建设兵团分院: 经最高人民法院审判委员会讨论决定,现将张某某.金某危险驾驶案等六个案例(指导案例32-37号),作为第八批指导性案 ...