基于Android的视频播放APP的设计与实现(程序源代码+apk运行app软件+视频)

摘要

随着社会的进步,互联网行业的快速发展,移动智能手机已经与人们的日常生活密不可分。手机上的应用涉及面非常的广泛,可以看出传统行业和移动互联网的融合呈现新的特点,平台和模式都发生了变化。视频播放是智能手机十分重要的功能,视频播放平台整体的发展都显示出良好的前景。Android操作系统,由于其开源性及优秀的系统特性,受到了广大手机厂商的青睐。本课题根据项目的实际需求以及当前的移动视频发展背景,主要的目的是实现一款基于Android的视频播放APP,系统要实现的核心功能是Android智能手机上的视频点播,主要关注视频播放中的用户体验,其次,整体软件的各个功能模块是否符合用户操作习惯,设计并实现一款基于Android系统的视频点播APP,提供丰富多样的视频内容,具有重要的现实意义。本文首先根据当前时代背景和互联网的发展探讨了课题背景和意义,并了解了国内外当前研究现状,之后对课题实现过程中使用的相关技术进行了介绍,并充分研究了产品需求,提出了功能性需求和非功能性需求。在完成需求分析后,根据需求分析的结果进行概要设计,概要设计的主要内容有系统架构、功能结构、数据库结构等方面。通过开发实现需求,并对视频播放APP进行测试,测试结果基本符合预期。

关键词Android;视频播放APP;设计与实现

ABSTRACT

Withtheprogressofsocietyandtherapiddevelopmentoftheinternetindustry,mobilesmartphoneshavebecomeinseparablefrompeople'sdailylives.Theapplicationonmobilephonesisveryextensive,anditcanbeseenthattheintegrationoftraditionalindustriesandmobileinternethaspresentednewcharacteristics,withchangesinplatformsandmodes.Videoplaybackisaveryimportantfeatureofsmartphones,andtheoveralldevelopmentofvideoplaybackplatformsshowsgoodprospects.TheAndroidoperatingsystem,duetoitsopen-sourcenatureandexcellentsystemcharacteristics,hasbeenfavoredbyalargenumberofmobilephonemanufacturers.Basedontheactualneedsoftheprojectandthecurrentdevelopmentbackgroundofmobilevideo,themainpurposeofthisprojectistoimplementanAndroidbasedvideoplaybackapp.ThecorefunctionofthesystemisvideoondemandonAndroidsmartphones,mainlyfocusingonuserexperienceduringvideoplayback.Secondly,whetherthevariousfunctionalmodulesoftheoverallsoftwarecomplywithuseroperatinghabits,designandimplementanAndroidbasedvideoondemandapp,Providingrichanddiversevideocontenthasimportantpracticalsignificance.ThispaperfirstdiscussesthebackgroundandsignificanceofthesubjectaccordingtothecurrenterabackgroundandthedevelopmentoftheInternet,andunderstandsthecurrentresearchstatusathomeandabroad.Thenitintroducestherelevanttechnologiesusedintheimplementationofthesubject,andfullystudiestheproductrequirements,andputsforwardfunctionalrequirementsandnon-functionalrequirement.Aftercompletingtherequirementsanalysis,conductasummarydesignbasedontheresultsoftherequirementsanalysis.Themaincontentofthesummarydesignincludessystemarchitecture,functionalstructure,databasestructure,andotheraspects.Bydevelopingandimplementingtherequirements,andtestingthevideoplaybackapp,thetestresultsbasicallymeettheexpectations.

Keywords:Android;Videoplaybackapp;DesignandImplementation

目录

1绪论

1.1课题背景及意义

1.2国内外现状

1.2.1国内研究现状

1.2.2国外研究现状

1.3主要研究内容

2相关理论与技术分析

2.1Android操作系统

2.2开发相关技术及工具

2.2.1bootstrap框架

2.2.2MVC设计模式

2.2.3Hbuilderhtml工具

2.2.4HTML、CSS、JavaScript概述

2.2.5Mysql数据库

3视频播放APP需求分析

3.1总体需求

3.2可行性分析

3.3功能需求分析

3.3.1视频播放功能需求分析

3.3.2登录注册功能需求分析

3.3.3设置界面需求分析

3.4非功能分析

4视频播放APP的设计

4.1设计目标

4.2软件架构设计

4.3功能结构设计

4.4数据库总体设计

4.5数据库表设计

4.5.1用户信息数据库表

4.5.2用户登录日志

4.5.3视频信息表

4.5.4视频评论信息表

5视频播放APP实现

5.1登陆注册模块实现

5.1.1登陆页

5.1.2注册页

5.2设置模块实现

5.3视频播放模块实现

5.3.1首页

5.3.2内容页

5.3.3视频展示页

5.3.4更多

5.3.5底端模块说明

6视频播放APP系统测试

6.1测试目的

6.2测试方法

6.3性能测试

6.4测试结果及分析

总结

致谢

参考文献

  1. 绪论
    1. 课题背景及意义

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布 的基于Linux平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。 随着科技的不断发展,手机不再只是人们日常生活的移动通信工具,而是一个多 媒体平台,可提供强大的多媒体功能,越来越多的人喜欢用手机听音乐、看电影。

目前,作为Android的手机用户而言,都有视频播放器的实体应用。但是,对于绝大多少而言,其界面单调,功能单一。比如,界面与其他非智能的手机没有大的区别,而功能上面,也就除了基本的播放控制流程之外,多上一个视频基本信息的显示,同时加上一个对预设定路径的播放列表的展示。因此,开发一款界面友好、炫丽、功能更多的视频播放器,更好的贴近用户,满足用户需求,其应用前景也是相当乐观的。市面上越来越多的android手机涌现而出,也渐渐将智能手机带入一个大屏的时代,拥有一款大屏幕分辨率的android手机也成为了时下手机用户的新追求。而当我们拿到一款屏幕尺寸大,显示效果好的手机时,就一定少不了用它来看电影,看MV。不过很多时候由于手机本身的硬件限制,有很多格式的视频默认情况下在手机中是无法播放的,此时各式各样的视频播放器就应运而生,它们通过软件解码来弥补了手机硬件本身的不足,达到让手机能够支持各种主流格式视频的效果。

    1. 国内外现状

近年来,随着智能手机和移动互联网的普及,视频观看已成为手机用户重要的使用行为之一。由于移动端设备小巧并且使用方便,越来越多的用户喜欢利用生活中碎片化的时间来观看各种在线短视频,短视频的兴起给生活添加了更多的乐趣,各种消息的传播也越发迅速了,人们也特别喜欢观看与兴趣爱好匹配的视频内容,并能无缝衔接智能的不停向用户推送播放下一个视频。目前,观看短视频已成为了一种潮流,在线短视频的兴起还带动了电商、旅游等行业的快速发展。因此,视频播放APP的需求也越来越高。以下是Android视频播放APP的国内外研究现状:

      1. 国内研究现状

腾讯视频、爱奇艺、优酷等大型视频网站的Android客户端。这些APP拥有海量的视频资源和优良的用户体验,获得了广泛的用户认可。还有一些市面上主流的播放器,RockPlayer是一款嵌入式平台上的高性能全格式视频播放程序。凭借专为移动设备优化的播放核心以及高度优化的FFMpeg解码器,RockPlayer已经成为了Android平台上性能最高支持格式最广泛的视频播放程序;手机QQ影音是一款运行在Android智能手机上的全格式视频播放软件,支持播放avi、flv、mp4、3gp、mkv、mov等常见格式的视频文件。手机QQ影音独创智能选核技术,深入挖掘Android手机平台的播放潜力,针对Android手机特点细致优化播放效果,让您在有限的资源和屏幕上,享受更流畅、更优质的播放体验;MoboPlayer 是运行在移动设备上,为音频和视频提供高质量回放的播放软件。它可以让你在移动设备上播放几乎所有的多媒体格式,将你的数字生活体验提升到新的境界。还有面向特定领域的视频播放APP,例如法律学院视频课程、医学教育视频等,旨在满足特定领域的用户需求。

      1. 国外研究现状

(1)YouTube,是全球最大的视频分享平台,其拥有丰富的视频内容以及良好的个性化推荐算法,使得用户能够快速找到感兴趣的视频。

(2)Netflix,是一款流媒体服务APP,其提供无广告的高品质影片和电视剧资源,进行了出色的视频播放体验。

(3)Vimeo,是一种以高质量视频分享为主的社交媒体平台,其提供了用户上传、分享以及展示其作品的方式,透过Vimeo的组件,许多开发者已经推出了可以使用Vimeo来进行全屏幕视频播放的Android应用程序。

综上所述,Android视频播放APP在国内外都有着广泛的应用和研究,目前主流的APP已经提供了丰富的视频资源和优秀的用户体验。因此,在设计和开发基于Android的视频播放APP时,需要特别关注用户需要和体验。

    1. 主要研究内容

Android的视频播放APP是一种非常重要的应用一,它为用户提供了方便快捷的视频观看体验,并且在市场上具有很高的竞争力。在设计和实现Android的视频播放APP时,需要考虑以下主要研究内容:视频解码技术,要选择适合自己应用的解码器和优化算法,提高视频播放的效率;视频格式支持,需要研究各种视频格式的特点和支持程度,在APP中适当地支持各种常见视频格式,以符合用户的需求;视频播放控制及视频资源管理需要研究如何进行视频资源的管理和组织,以便用户能够方便地查找和观看各种视频资源。最后要注重UI设计和用户体验,在设计Android的视频播放APP时,需要考虑UI界面的设计和用户体验,使用户能够方便快捷地进行操作,并且能够在视觉上获得良好的体验。此外,还需要研究如何通过用户反馈和分析,进行持续的UI优化和改进,以提高用户满意度。

本论文要满足市场对视频播放器的需求,实现基于Android的视频播放APP的设计与实现,首先进行需求分析,包括总体需求、各模块需求以及非功能性需求,为系统开发做好准备;然后进行系统设计,从设计架构到数据库设计;实现功能,利用Android平台的开发技术,实现各个功能模块,并进一步对功能进行完善,具体来说,需要实现的功能模块主要有在线视频点播、评论、登录注册、设置、搜索等。最后要进行测试,对整个系统进行功能和非功能性测试,主要关注视频播放中的用户体验。

  1. 相关理论与技术分析
    1. Android操作系统

Android操作系统是目前世界上市场占有率最高的移动操作系统,2008年9月,Google公司正式发布Android1.0系统,之后的几年内迅速发展,在2011年首次超越塞班系统,跃居全球第一。Android操作系统本身是基于Linux开发的,既可以应用在手机上,也可以应用在平板电脑上,其开源性和优秀的系统架构在移动设备上大放异彩。Android操作系统架构可以分为四层:Linux内核层(LinuxKernel)>系统运行库层(Libraries)、应用框架层(ApplicationFramework)和应用层(Applications)。

Android是基于Linux内核的,该层不仅有操作系统所必须的内存和进程管理,还为设备提供底层核心驱动,如蓝牙驱动,音频驱动,照相机驱动,键盘驱动,WIFI驱动,电源管理等。

系统运行库层包括Android运行时库和系统运行库,这一层主要是一些C/C++库为系统提供主要特性支持,如浏览器内核支持,数据库支持等,这些核心库能够允许开发人员使用Java来编写应用程序。

应用框架层与程序开发人员最为相关,主要提供构建应用程序所需的各种API,开发人员可以在此基础上构建移动端应用程序即APP,另外Android自带的一些核心应用也是使用这些API完成的。由于上层的应用程序是以Java构建的,因此本层次为其提供了资源管理,丰富的视图,通知管理,活动管理等服务。

应用层面向用户,安装在设备上的应用程序都属于这一层,包括系统应用和开发的应用。主要的系统应用有短信、通讯录、电话、浏览器等,当然,开发者也可以自己开发这类应用程序。

    1. 开发相关技术及工具
      1. bootstrap框架

Bootstrap框架是一种常用的前端开发框架,它基于HTML、CSS和JavaScript,提供了丰富的组件和工具,能够快速地搭建出美观、响应式和易于维护的Web页面和应用。在基于Android的视频播放APP的设计与实现中,Bootstrap框架可以发挥以下的作用:

  1. 响应式设计

Bootstrap框架提供了响应式的网格系统和响应式的CSS,能够自适应不同分辨率的设备,使得视频播放APP在手机、平板和电脑等不同设备上获得良好的显示效果。

  1. UI组件

Bootstrap框架提供了丰富的UI组件,包括按钮、表格、面板、模态框、导航条等等,能够快速地创建漂亮的用户界面,增强用户交互体验。

  1. 插件和工具

Bootstrap框架提供了多种插件和工具,例如下拉菜单、轮播图、弹出框、滚动条等等,能够快速地实现各种功能和效果,提高开发效率和用户体验。

  1. 样式和主题

Bootstrap框架提供了多种样式和主题,能够让开发者根据自己的需求和品牌风格来选择不同的样式和主题,从而使得APP具有独特的视觉外观。

总之,Bootstrap框架在Android的视频播放APP的设计与实现中,可以帮助开发者快速地搭建出美观、响应式、易于维护和具有良好用户体验的Web页面和应用。

      1. MVC设计模式

在Anroid开发APP中常采用MVC(Model-View-Controller)设计模式,这种模式在Java开发中也被广泛的使用。模型(Model)是整个应用的重要部分,存放应用的实体类对象,封装各种类型的数据,完成对用户发送请求后返回数据的处理,而不用去关心用户界面相关的逻辑,对于一些耗时的操作也可放在该部分里;视图(View)是将界面展示给用户看,主要通过xml布局文件的设计来展现的,常见的布局有LinearLayout、RelativeLayout等,在布局文件中可设置各种类型的控件,如TextView、Button、RecyclerView等控件,主要用于用户交互的作用,并通过Adapter(适配器)将数据显示在用户界面上;控制器(Controller)充当调度的作用,由Activity与Fragment来组成,管理着视图与模型两个层面的交互,完成数据交互间的业务逻辑,并将结果在界面供用户查看。MVC的设计模式提高了代码的复用,减少了代码之间的过度关联,开发与维护的成本变低。

      1. Hbuilderhtml工具

Hbuilder是一款HTML开发工具,它集成了多种常用的HTML、CSS和JavaScript工具和编辑器,包括HTML编辑器、CSS编辑器、JavaScript编辑器、代码调试器、Web视图预览器等等。

在基于Android的视频播放APP的设计与实现中,Hbuilder提供了完整的Web开发环境,能够提高开发效率和代码质量,同时也支持多种移动设备和平台;Hbuilder提供了智能代码提示、语法高亮、代码折叠等功能,能够让开发者更高效地编写代码,同时减少错误的出现;Hbuilder提供了实时页面预览,还可以同时查看不同设备和分辨率下的效果,可以快速查看和调试页面效果;调试功能。

Hbuilder还提供了强大的调试功能,可以逐步跟踪和检查代码和错误信息,随时发现和修复问题;扩展插件:Hbuilder还支持扩展插件,可以自定义和增强其功能,满足不同开发者的需求。Hbuilder是一款十分实用的HTML开发工具,在基于Android的视频播放APP的设计与实现中,Hbuilder可以极大地提高开发效率和代码质量,同时也能够帮助开发者更好地定位问题,从而加速项目的开发进度和提高应用的质量。

      1. HTML、CSSJavaScript概述

HTML、CSS和JavaScript,是Web开发的三大核心技术。在基于Android的视频播放APP的设计与实现中,这三种技术也是不可或缺的。

HTML(HypertextMarkupLanguage)是用于创建Web页面的标准标记语言,它提供了一系列的标签(tag),用于描述页面的结构和内容。HTML标签可以定义不同的区域、标题、段落、图片、链接等,使得开发者可以通过简单的标记语言来创建网页。

CSS(CascadingStyleSheets)则是用于描述Web页面的外观和样式的标准语言。CSS可以控制网页的颜色、字体、大小、布局等视觉特性,从而使得网页更加美观和易于阅读。CSS与HTML紧密配合,通过CSS样式文件来定义各种元素的外观。

JavaScript则是用于创建交互式和动态页面的编程语言。通过JavaScript,开发者可以为网页添加事件、动画、交互效果等,从而使得网页更加生动和有趣。JavaScript可以与HTML和CSS结合使用,创建出更加丰富的用户界面和交互效果。

在基于Android的视频播放APP的设计与实现中,HTML、CSS和JavaScript可以协作使用,通过HTML标记语言来定义UI界面,通过CSS样式来美化UI界面,通过JavaScript编程实现交互效果和数据处理。这些技术的综合使用,可以创建出更加便捷、美观、高效的APP应用程序。

      1. Mysql数据库

MySQL数据库是一种广泛使用的关系型数据库管理系统,在Android应用程序开发中也可以应用。为了实现基于Android的视频播放APP的设计与实现,需要创建一个MySQL数据库,以存储与视频播放相关的数据。先对MySQL数据库中关于视频播放方面的数据表设计,可根据具体需求进行调整,例如新增表单、调整字段类型等,以满足APP应用的需求和数据存储。

  1. 视频播放APP需求分析

在移动互联网迅速发展的时代背景下,视频播放己经成为智能手机十分重要的一项应用。在设计并实现视频播放客户端系统之前,除了主要的功能性需求之外,还需要对一些非功能性需求如界面需求、性能需求等进行分析。

    1. 总体需求

根据项目的实际需求以及当前的移动视频发展背景,本课题的主要的目的是实现一款基于Android的视频播放APP。系统要实现的核心功能是Android智能手机上的视频点播,从总体需求来看,系统需要实现的功能主要包括以下几方面:

用户可以注册账号并登录,以保存个人资料,进行个人信息管理等,登录成功后可以使用更多的功能模块。 .在APP主页面自由选择想观看的视频进行播放,该部分为主要功能模块,直接关系到用户体验,需要进行视频分类以方便用户的选择,主要的视頻分类有古风、校园、奇幻、唯美、穿越等各大类,还包括推荐频道。同时用户还能在视频点播页进行搜索,快速找到相应的视频和信息。用户可以在设置查看账号信息,隐私设置,进行通知等设置。用户可以对APP存在的问题进行反馈,提出自己的意见,后台可对信息进行搜集与反馈。

    1. 可行性分析

(1)技术可行性

在开发基于Android的视频播放APP之前,对相关技术进行评估和分析,可以确保该技术能够支持所需要的功能和要求。同时,需要考虑该技术能够与目标平台兼容,并且可以满足预期的性能和安全要求。

(2)市场可行性

在进行开发之前,评估了目标市场的需求和潜在客户,确认该应用程序符合市场需求。此外,也研究市场竞争情况,确定该应用程序在市场上的前景,包括潜在的用户群体、联盟合作等等。

  1. 经济可行性

在开发该应用程序之前,评估了开发成本、市场开发费用和预期的收益等,计算投资回报率可行。此外,评估现有的资源和设备,也是可行的。

(4)法律可行性

在开发和发布应用程序之前,考虑法律规定和政策。此APP符合法律和版权方面的规定和限制,保护用户隐私,保证应用程序的安全性等。

    1. 功能需求分析
      1. 视频播放功能需求分析

视频播放是该项目中最为核心的功能,该功能中无论是界面设计,播放控制,播放流畅度等都将直接影响到用户的APP使用体验,因此需要对该功能特别重视,下面将讲述其中主要的视频列表、播放视频、搜索视频等功能及操作流程。

在进行视频播放之前,首先向用户展示视频列表页,页面中根据视频类型如古风、校园、奇幻、唯美、穿越等进行分类展示,为了方便用户在观看视频前了解大致内容,视频列表中需要包含以下信息:视频截图、类型、视频名称、简要介绍。考虑到视频相关信息需要从网络加载,而一次性加载过多的内容不仅会增加用户等待时间,还会浪费流量,需要对视频信息进行分类加载和显示。用户可以自由上下滑动浏览列表项,在视频列表中找到自己想看的内容后,可以点击相应的列表项进入视频播放页。

视频播放器是该功能下最关键的部分,除了最基础的视频播放功能外,还应该提供更多的播放控制,提高系统的播放流畅性,设计友好的播放界面,支持更多的视频格式以满足用户需求。用户可以通过视频列表页进入竖屏顶部播放页面,点击全屏切换按钮进行全屏播放。在全屏播放页面下,用户可以进行播放和暂停、快进和快退、调节音量和亮度等播放控制操作,用户还可以进行开关灯设置,便于各种不同光线下的用户需求。每个视频下方进行观看时,可以同时查看全部热评,和在线网友一同分享。

      1. 登录注册功能需求分析

登录注册功能不仅能为不同的用户提供更多更准确的服务,还能方便用户拥有自己的账号,对账号信息进行管理,是项目中一项最基本的功能,主要包含登录和注册这两个功能点。用户只有注册了账号并进行登录才能使用个性化推荐、个人信息更改等功能,现就对登录注册主要功能及流程进行分析。当用户首次启动APP后,会弹出提示框,提醒用户进行账号登录,点击提示框中的登录键可以进入登录页进行账号登录。为了方便用户,可以保存登录,下次免登录。用户注册需要输入用户名、手机号码、省份、邮箱地址等信息,在完成注册进行用户登录时,在账号信息上填写自己的用户名和密码,若账号和密码都正确,则正常完成登录,否则提示用户名错误或者密码错误,可以进行密码重置。

      1. 设置界面需求分析

设置界面包含账号管理、通用、关于和登录注册功能。账号管理模块可以进入账号与安全可以对账号进行查看与编辑修改,需要进行隐私设置与修改。在通用模块对系统进行设置修改,可以设置是否通知、通知方式,实现通用设置。在关于模块可以对APP进行反馈,与在线帮助请求,反馈信息输入提交,后台管理员可以进行搜集与反馈,在线帮助可以随时与客服进行对话,完成对客户的需求及时反馈。设置界面同时可以对账号登陆注册进行管理,可以退出登录与切换账号。

    1. 非功能分析

作为需求分析中的一部分,非功能性需求虽然不直接与系统的具体功能相关,但同样不可忽视。非功能性需求体现了软件系统的质量和特性,主要有软件系统的性能、可靠性、可扩展性、界面需求等多个方面。在设计上需要考虑用户能有良好的使用体验,包括系统运行流畅、操作简单、界面简洁美观等。

      1. 性能需求

性能需求上要满足视频播放器的稳定性,在网络状况良好的情况下,能稳定的播放视频。用户在进行搜索暂停等操作时无明显卡顿现象;

APP应具有良好的可扩展性,随着系统功能的拓展,新加入的功能不会对原有的其他功能模块造成影响;

系统的响应时间要短,APP的启动时间,网络加载耗时,用户使用客户端进行具体操作的耗时。其中,在网络环境正常的情况下,网络信息加载耗时应不超过2s,用户的操作响应时间应小于200ms,APP启动时间不应超过行业平均值,需控制在3s以内;

软件的资源占用率要低,APP运行内存应小于100M,软件安装包占用空间应尽可能小,大约在30M左右。

      1. 界面需求

界面需求也是系统至关重要的一项内容。良好的界面设计,不仅体现在软件的整体美观程度上,还能让用户的操作更加舒适自由。本课题中的视频点播客户端在界面设计上需要注重用户的使用体验,整个系统界面中的字体、背景颜色应该保持统一的风格,各个界面中的控件大小和类型需要符合人们的操作习惯,做到界面简洁美观。

  1. 视频播放APP的设计
    1. 设计目标

将繁琐的视频资源页面简化设计在手机端的APP上,减少各种复杂页面内容,提取出核心的资源进行业务开发,具有内容充实、界面简洁、播放功能全面,并同时具备以下原则:第一易使用,精选资源也是众多的,做好分类显示,对相应功能的一目了然,提升用户的交互使用感,没有复杂的操作,能方便使用。第二稳定性,APP完成后的性能是主要的,减少层级之间的过度依赖、提高代码的复用性,结合优秀的框架设计出高质量的APP,没有功能逻辑上的bug。第三视觉体验。充分结合用户操作体验,页面的滑动切换以及在滑动滚动图片时应具有平滑效果,在视觉上无卡顿现象。在视频详情页面显示的背景中设置一种比较大众化的背景色,增加本APP的识别度,并优化弹幕加载显示,提升观看体验。第四响应速度。应用打开的反应速度要快,不能出现太长时间无响应而导致的卡机情况,应用能在任何情况下都能经过后台来关闭当前进程,并能重新打开。在点击到页面,能快速的将网络返回的数据内容填充展示,避免过长时间的等待,在切换不同的页面时数据能迅速加载并显示

    1. 软件架构设计

软件架构描述了系统抽象组件构成,为软件系统提供了一个结构、行为和属性的高级抽象,可以为设计软件系统的提供相应的指导。从面向对象领域进行分析,各个组件之前实施的连接实现往往是接口。

本课题中的整个视频点播系统由客户端和服务器两部分组成,整体上属于C/S模式,服务器端主要负责接收客户端的网络请求并处理相应的业务逻辑,返回处理结果给客户端,同时用户信息和系统关键数据也保存在服务器。客户端则负责与用户交互和视频的播放,在服务器返回数据时,解析数据并展示给用户,除了网络视频外,其他传输的数据通常为Json格式。视频点播客户端釆用分层架构,共分为四层,自下而上依次为基础工具库、通用组件层、功能模块层和项目主工程,各层之间的依赖关系为上层可以向下依赖,反之则不行。项目釆用分层架构既使得工程结构显得更加清晰,还能提高系统的可扩展性和可维护性。

底层基础工具库中主要提供一些常用的工具类,如网络请求、格式解析、多线程、后台服务(Service)、数据模型(Model)等,而这些部分通常在整个项目中是通用的,这样就可以在不同的功能模块中通过建立依赖的方式来调用这些工具类库,避免大量重复代码的产生。

通用组件层并不包含系统的业务逻辑,该层可以自由调用底层基础工具库中的内容,其主要功能是为业务逻辑层和项目主工程提供丰富多彩的控件(Widget)、自定义的界面元素(View)以及不同的组件等,不同的功能模块可以自由引用该层中的内容。

功能模块层负责处理各个功能模块的业务逻辑,依赖于通用组件层和基础工具库层。各个功能模块是相互独立解耦的,绝大部分复杂的业务逻辑都在该层中,包括数据的接收和解析,视频的播放,数据存储等。

项目主工程将各个功能模块组合在一起,包含少量的业务逻辑,系统的主页面也在该层中,直接面向用户,负责响应用户的操作以及展示接收到的数据。主工程是整个应用的入口,不应该被任何一层引用,各个功能模块的业务代码可以从主工程开始自上而下寻找。

    1. 功能结构设计

根据需求分析的结果,可以将视频点播客户端划分为视频播放、设置中心、登录注册、喜好推荐、搜索等功能模块。其中,设置中心下还包括通用设置、关于、登录注册等子模块。

视频播放模块和个人中心模块是整个系统最主要的部分。其中,视频播放模块实现的播放器为用户提供最重要的观看视频的功能,同时还展示视频列表,并对视频进行分类以方便用户进行视频的观看选择,设置中心模块向用户提供一些最基础常用的功能,包括账号信息的显示和修改、对APP进行通知设置等。

登录注册模块包括登录和注册两项功能,用户在进行登录后可以方便的使用更多的功能如推荐、意见反馈等,在用户忘记个人账号的密码时也可以在该模块下进行找回密码。喜好推荐模块负责对不同的用户进行分析,并根据分析结果为用户推荐他们可能感兴趣的内容,提高用户的使用体验。用户可以使用搜索模块查找自己想看的视频内容,搜索的结果以视频列表的形式,根据搜索匹配度排序展示给用户。点击搜索列表中的内容,则会跳转至视频播放页。

图4.1 系统功能图

    1. 数据库总体设计

任何一个软件系统的运行都离不开数据,因此需要数据库对大量的数据进行存储和管理。本系统的客户端使用Android移动设备自带的SQLite数据库,既方便又能满足需求.SQLite数据库是一种轻量级,运算速度较快的关系型数据库,在开发时对本地数据库的增删改査既可以使用SQL语法,也可以通过建立对象的方式访问。在创建数据库表之前,首先要进行表的设计,其中,用户信息表中包含用户名、密码、手机号、编号、省份等属性,用户在完成注册后数据库中就会存储这些信息,通过访问个人中心,可以使用设置功能修改语言、头像以及用户名和密码。

    1. E-R实体图

通过对系统E-R图的分析,将数据概念转换成关系模型,各种实体之间的关系通过图形化的方式表示出来,以便于理解和分析。下面通过主要功能模块的数据对项目基本数据做简单的介绍。

用户E-R图,如图4.2所示:

图4.2:用户E-R图

视频E-R图,如图4.3所示:

图4.3:视频E-R图

    1. 数据库表设计

各模块需要对大量的信息进行管理,如用户账号名、密码以及其他个人信息都需要后台服务器和数据库的支撑。下面对数据库表进行设计:

      1. 用户信息数据库表

表4.1:1user_info

字段名

类型

允许空值

主键

说明

User_Id

int

NOTNULL

用户编号(唯一)

User_Name

varchar

NOTNULL

用户名

Password

varchar

NOTNULL

用户密码

Password_Temp

varchar

NOTNULL

用户确认密码

sex

int

NOTNULL

性别12

tel

int

NULL

电话

area

varchar

NULL

地区

E_mail

int

NULL

邮箱

Is_Agreement

int

NOTNULL

是否同意协议

      1. 用户登录日志

表4.2:user_login_info

字段名

类型

允许空值

主键

说明

User_Id

int

NOTNULL

用户编号(唯一)

Password

varchar

NULL

用户密码

is_save_login

int

NULL

是否保存登录状态

Is_Agreement

int

NULL

是否同意协议

Login_time

varchar

NULL

登录时间

Log_out_info

varchar

NULL

退出时间

Is_lock

int

NULL

账号是否锁定

      1. 视频信息表

表4.3:Video_info

字段名

类型

允许空值

主键

说明

video_Id

int

NOTNULL

视频编号(唯一)

video_type

int

NULL

视频类型

video_info

int

NULL

视频简介

name

varchar

NULL

名称

birthday

varchar

NULL

生日

constellation

int

NULL

星座

time

varchar

NULL

年月

area

varchar

NULL

地区

Video_duration

varchar

NULL

视频时长

      1. 视频评论信息表

表4.4:Comment_info

字段名

类型

允许空值

主键

说明

comment_Id

int

NOTNULL

评论编号(唯一)

User_Id

int

NULL

用户编号

info

int

NULL

评论信息

time

varchar

NULL

时间

      1. 反馈信息表

表4.5:feedback_info

字段名

类型

允许空值

主键

说明

feedback_Id

int

NOTNULL

反馈信息编号(唯一)

User_Id

int

NOTNULL

用户编号

info

int

NOTNULL

反馈信息

time

varchar

NULL

时间

Is_solve

int

NULL

是否解决

remarks

varchar

NULL

解决备注

      1. 用户通知设置表

表4.6:notice_set_info

字段名

类型

允许空值

主键

说明

User_Id

int

NOTNULL

用户编号

Is_notice

int

NOTNULL

是否通知

Type

varchar

NULL

通知类型

time

int

NULL

设置时间

      1. 用户视频观看记录表

表4.7:user_video_his

字段名

类型

允许空值

主键

说明

id

int

NOTNULL

编号

User_Id

int

NOTNULL

用户编号

video_Id

int

NOTNULL

观看视频编号

time

varchar

NULL

时间

Watch_dur

varchar

NULL

浏览时长

  1. 视频播放APP实现
    1. 登陆注册模块实现
      1. 登陆页

此页面是前台用户的登录界面。登录时要填写用户名,密码,之后再点击登录按钮就会登录系统。这里要正确填写,否则会登录失败。可以保存登录信息。客户使用协议签署也在登录页面。如图5-1所示:

图5-1:登录页

      1. 注册页

此功能是用户的注册界面。登录时要填写用户名,性别、手机号码、省份、邮箱地址、密码,之后再点击注册按钮就可注册。要全部填写,否则校验不通过,密码与确定输入密码要一致。用户要签署使用协议,注册登录,也可重置密码。如图5-2所示:

图5-2:注册页

    1. 设置模块实现

此页面是设置界面。有账号管理、通用设置、关于、登录注册功能。可以对账号进行修改保存、隐私设置等功能,通用中可以进行通知设置、通用设置,关于中可以对软件进行反馈与在线咨询,可实现登录注册和退出登录,如图5-3所示:

图5-3:设置页

    1. 视频播放模块实现
      1. 首页

面是首页根据时间排列的视频播放列表是本软件的主页面上下滑动可以选择喜欢的视频进入视频列表上显示视频名称时间视频地区点击可进入视频详情和观看页同时在列表顶部可以进行搜索功能也可以返回图5-4所示:

如图5-4:首页

      1. 内容页

此页面是内容界面。从主页面可以点击进入,是对视频和主角的介绍,有别名、生日、星座、和情节简介,进行内容详情查看。可以一键到首页,也可以一层一层返回上个菜单。如图5-5所示:

如图5-5:内容页

      1. 视频展示页

此页面是视频展示界面。进入视频后可以进行播放,上侧有视频名称、详情进入按钮和返回按钮,视频播放可以随时暂停,有开关灯效果,可以根据不同光线选择,下方可以进入更多精彩推荐,在观看视频的过程可以同时查看热评,如图5-6所示:

如图5-6:视频展示页

      1. 更多

此页面是更多界面。页面显示猜你喜欢的视频,可以直接进入视频观看,可以搜索,如图5-7所示。视频也根据古风、校园、奇幻、唯美等类型进行划分,可以按类型查看,也可直接搜索感兴趣的视频,如图5-8所示:

如图5-7:视频展示页

如图5-8:更多页

      1. 底端模块说明

底端设计简单明了,可以一键主页,返回、设置页面等点击跳转到各自模块。中间主按钮也可以便于之后功能增加链接。如图5-9所示:

如图5-8:底端模块

  1. 视频播放APP系统测试
    1. 测试目的

一个项目或者某些功能要上线运行之前,首先要进行充分的测试,以保证软件质量,而软件测试的目的是检査和发现系统是否存在问题或不足,并对其是否能满足设计要求进行评估。主要对本课题中的设计并实现的视频点播客户端进行功能和性能测试,对各个模块进行测试,最后给出测试结果及分析,确认系统的性能和功能是否满足用户的需求。

    1. 测试方法

软件测试的方法有黑盒测试和白盒测试两种,黑盒测试是在不需要了解程序内部结构和源代码的情况下,只针对“软件界面”和”软件功能“进行测试,检查功能和界面是否存在问题,从项目人员配置来说,黑盒测试通常由测试人员完成,而白盒测试相对于黑盒测试而言具有一定透明性,是根据软件的内部结构和源代码进行的测试,通常是为了检查程序的边界值和数据结构的有效性,尽可能覆盖到所有的逻辑分支。本项目主要采用黑盒测试的方法,对各个不同的模块进行功能测试。

    1. 性能测试

随着项目的功能越来越多,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,因此必须对其进行性能测试,否则将会直接影响用户体验。本节将从启动时间和内存问题对视频点播客户端进行性能测试和分析。测试APP启动时间可以使用命令行加Logcat日志分析的方式,将移动设备链接至PC端后,输入启动APP的命令后,可以在控制台日志上找到启动信息,其中,TotalTime代表启动APP花费的时间,可以使用多次测试求得平均值的方式获取平均启动时间。经过多次测试,本项目的平均启动时间在1.8秒左右,通常启动时间在2秒以内说明启动较快,5秒以内是大多数用户能接受的,这里可以看出本项目的启动时间符合性能需求。如果一个APP长时间占用大量的内存而得不到释放,将会导致一系列的问题,程序运行一段时间后,可以直接从memory工具栏中观察APP的内存使用情况,经过多次测试后,结果为APP的内存的使用在96M左右,而通常内存使用不超过110M为正常状态,符合原先预期。

    1. 测试结果及分析

针对登录注册、设置、视频播放和喜好推荐这四个模块,经过测试用例设计和实际的用例通过率也表明本课题中的视频点播客户端良好的完成了这些需求,结果基本令人满意,但仍然存在一些问题,比如不同设备和不同机型的兼容性问题,不同手机分辨率导致的界面UI问题,相关的部分用例未通过,现就对这两个问题进行分析。

兼容性问题出现的原因主要有两个,即不同机型导致的和不同Android系统版本导致。出现不同机型导致的问题时,原因往往是各大手机厂商对Android系统的定制更改部分出现冲突导致,这时候首先需要找到问题出现的点,再去代码中找到相应的逻辑,研究出现机型兼容性问题的原因,这类问题往往是难点,需要不断的修改和调配,并针对不同的型号修改了不同手机版本的逻辑。

不同手机的屏幕分辨率各不相同,而程序中如果使用固定像素点作为UI实现的话,就会出现不同分辨率手机的界面不一致的问题,这也会影响用户的使用体验。在界面布局时,首先需要严格参照界面设计图来实现,使用屏幕密度相关像素dp作为单位能较大程度上避免屏幕分辨率导致的界面问题,对于精度要求比较高的页面,可以使用百分比布局来实现。

除了功能测试外,性能测试也十分重要,本次性能测试针对启动时间和内存分析两个点进行,都符合要求,其他的系统性能要求如CPU使用情况、播放器帧率、系统总体响应时间等,也需要关注,出现问题时要及时改进。总体上来说,本课题的测试通过率满足了设计和实现的要求。

总结

本文研究了基于Android平台在线视频播放APP的设计与实现,探讨在线视频的流行程度与前景,描述了目前Android系统手机上的在线视频软件的一些问题,以及在线视频观看用户的数量在国内外的现状,说明了本课题所设计的在线视频播放APP的意义是非常重要的。之后介绍本设计的相关技术,对Android开发技术进行系统的描述,一些常用框架和技术的使用,确定在线视频播放APP的设计目标,对系统中各方面进行需求分析,提出具体功能上的开发内容。对不同的栏目设计不同的标题名称,进行细致的分类,方便查看,然后通过编码实现各部分模块的功能,通过对数据解析方式的学习使用,对数据存储的方式有了新的认识。最后并对各模块在Android真机和虚拟机上进行了详细的功能与性能测试,评估是否到达到预期效果,对存在的问题优化处理,最终完成这款稳定运行、性能优秀、界面清晰的在线视频播放APP。

这是一个比较复杂的项目,需要涉及到Android多媒体播放相关的API,包括MediaPlayer、AudioManager、SurfaceView等,下面是一个简单的示例代码供参考。 1. 首先创建一个新的Android Studio项目,然后在布局文件activity_main.xml中添加一个SurfaceView和一些操作按钮,如播放、暂停、停止等。 ```xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <SurfaceView android:id="@+id/surfaceView" android:layout_width="match_parent" android:layout_height="match_parent"/> <Button android:id="@+id/btn_play" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="播放" android:layout_alignParentBottom="true"/> <Button android:id="@+id/btn_pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="暂停" android:layout_toRightOf="@id/btn_play" android:layout_marginLeft="10dp" android:layout_alignBottom="@id/btn_play"/> <Button android:id="@+id/btn_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" android:layout_toRightOf="@id/btn_pause" android:layout_marginLeft="10dp" android:layout_alignBottom="@id/btn_pause"/> </RelativeLayout> ``` 2. 在MainActivity.java中获取SurfaceView和按钮控件,并设置按钮的点击事件。 ```java public class MainActivity extends AppCompatActivity implements View.OnClickListener { private SurfaceView surfaceView; private Button btnPlay, btnPause, btnStop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); surfaceView = findViewById(R.id.surfaceView); btnPlay = findViewById(R.id.btn_play); btnPause = findViewById(R.id.btn_pause); btnStop = findViewById(R.id.btn_stop); btnPlay.setOnClickListener(this); btnPause.setOnClickListener(this); btnStop.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_play: // 播放 break; case R.id.btn_pause: // 暂停 break; case R.id.btn_stop: // 停止 break; } } } ``` 3. 在播放按钮的点击事件中,创建MediaPlayer对象,设置数据源、SurfaceView、监听器等,然后调用prepareAsync()方法进行准备。 ```java private MediaPlayer mediaPlayer; @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_play: if (mediaPlayer == null) { mediaPlayer = new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setSurface(surfaceView.getHolder().getSurface()); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start(); } }); try { mediaPlayer.setDataSource("http://xxxxx.mp3"); // 设置播放地址 mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } } else { mediaPlayer.start(); } break; case R.id.btn_pause: if (mediaPlayer != null && mediaPlayer.isPlaying()) { mediaPlayer.pause(); } break; case R.id.btn_stop: if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer = null; } break; } } ``` 4. 最后,在AndroidManifest.xml中添加INTERNET权限,允许应用程序访问Internet。 ```xml <uses-permission android:name="android.permission.INTERNET"/> ``` 这只是一个非常基本的示例代码,实际上还需要处理一些异常、错误、进度等情况,以及添加音量控制、播放列表等功能。但是这个示例可以作为一个很好的起点来开始编写一个完整的多媒体播放器应用程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值