基于Android的音视频播放器的研究与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6期2017年12月
微处理机
MICROPROCESSORS
No.6
Dec.,017
基于Android的音视频播放器的研究与设计
徐艳菲,吴铁峰
(佳木斯大学信息电子技术学院,佳木斯154007)
摘要:随着计算机技术的发展,利用计算机技术改善人民生活水平的需求越来越高。
音视频播 放器研究的目的就是为了满足用户的精神生活需要,而开发的一款基于Android平台的便于人们使用 的音、视频播放器,通过在移动端使用播放器,播放音乐或视频文件,给用户带来艺术体验,最终达到 缓解用户压力的目的。
从音视频播放器开发的意义和目的出发,在对播放器的需求进行分析的基础 上,以Java语百和Android SDK为开发语百,以Android Studio为编写工具进行设计。
播放器主要分为 音乐播放和视频播放两大模块。
音、视频播放器实现了调节音量、切换播放模式、歌词显示、上一曲或 下一曲播放、播放进度条的同步显示等功能。
关键词:Android系统;音乐播放器;视频播放器;开源系统;消息传递机制
DOI 编码:10.3969/j.issn.l002-2279.2017.06.017
中国分类号:TP319 文献标识码:B文章编号:1002-2279-(2017)06-0074-04
Research and Design of Audio and Video Player Based on Android
Xu Yanfei,Wu Tiefeng
(Information Electronic Technology College, Jiamusi University, Jiamusi 154007, China)
Abstract:With the development of computer technology,the use of computer technology to improve the needs of people's lives is getting higher and higher.The purpose of audio and video player research is to meet the user's spiritual life needs,which developed a Android-based platform for people to use audio and video player,through the use of players in the mobile terminal,music or video is played,bringing artistic experience to users,as to achieve the purpose of easing the pressure of users.Starting from the significance and purpose of audio and video player development,on the basis of the analysis of player requirements,Java language and Android SDK are used as the development language,and Android Studio is used as the writing tool for the design.The player is divided into two modules:music player and video player.The audio and video player realizes the functions of adjusting the volume,switching the play mode, displaying the lyrics,displaying the last song or the next song,displaying the synchronization of the progress bar and so on.
Keyw〇rds:Android;music player;video player;open source system;message passing mechanism
i引言
随着社会的发展,人们的生活水平不断提高,生 活节奏也在不断加快,随之而来的是精神压力越来 越大,而欣赏音乐和观看视频是最好的舒缓压力的 方式之一,但目前市面上用户使用的主流播放器还存在着一些弊端,例如:所需要占用的内存过大、外 观花哨不实用、播放时损耗流量过多、软件捆绑过于 严重、操作过于繁琐不适合老年和儿童使用、音乐播 放和视频播放之间的切换过于繁琐,等等。
这些情况严重影响了用户的良好体验和个人权 益,针对以上各种弊端,将各项性能进行优化,同时
作者简介:徐艳菲(1996—),女,黑龙江省双鸭山市人,本科在读,主研方向:计算机应用。
吴铁峰(1981—),男,江苏镇江人,讲师,主研方向:软件工程,javaee网络开发,数据库应用。
收稿日期:2017-10-31
6期徐艳菲等:基于Android的音视频播放器的研究与设计.75.
继承播放器的常用功能,便可满足一般用户听歌、看 电影的需求。
它能播放常见格式的音视频文件,包括 RMVB、AVI、3GB等格式的视频文件[1]。
以开发一个可以播放主流音乐文件格式并且可 以播放视频的多功能播放器为目的,设计一款基于 Android手机平台的音视频播放器。
利用音视频可以 在同一个APP中播放的特点,更好地提升用户的体 验。
手机上装有一个灵巧的音视频播放器,用户的操 作将更加便捷[2]。
2配置Android开发环境
在搭建Android的开发环境时,首先要搭建 Java的开发环境,其搭建过程如下:安装JDK,配置 JDK的环境变量;下载Android开发所需要的SDK;下载开发工具,此处用到的开发工具为Android Studio;下载完成 Android Studio后,关联一^下 SDK[3]。
3 Android的消息传递机制
当设计师创建Android应用程序的进程之时,系统就给此进程提供了一个Looper〇Looper是一个 死循环,它从内部维护这个消息队列。
Looper不停地 从消息队列中取出消息(Message),取到消息就发送 给Handler,最后Handler根据接收到的消息去修改 U LHandler的sendMessage方法就是将消息添加到 消息队列中[4]。
Activity中提供了一^个runOnUiThread 方法,用于进行消息处理。
此方法是通过线程合并 join来实现消息处理的。
线程合并指的是:主线程将 子线程的任务拿到自己这里来执行并终止子线程[5]。
消息机制原理图如图1所示。
4播放器的需求分析
4.1播放软件的角色分析
音、视频播放器最主要的功能就是播放视频和 音频。
在播放音频时,要考虑它的播放模式,一共可 设置三种播放模式,分别为:随机播放、单曲循环和 列表循环。
音频播放时需要实现音量控制功能,在播 放时调节音量的大小。
此外还要实现播放和暂停的 功能,来提升用户的体验。
最终还需要实现歌词显示 功能和播放上一曲/下一曲的功能。
系统的用例图 如图2所示。
4.2音视频播放流程分析
当用户打开软件时首先进人的是主界面,当进 人主界面时默认的选择界面为播放音频的界面,进 人该界面时软件会自动查找手机SD卡中的音频资 料,通过这些音频资料自动生成播放列表。
获取完播 放列表之后点击播放列表上的音频文件就可以跳转 到播放界面,如需退出应用时按手机上的返回键即 可。
当读取音、视频出错,或执行点击播放操作出现 错误时会造成程序崩溃的情况。
音、视频播放流程图 如图3所示。
4.3播放软件的总体功能分析
音、视频播放器的主体功能分为音乐播放和视 频播放,音乐播放界面的主要功能包括设定歌曲的 播放模式、获取音乐播放列表、点击播放音乐和文件 浏览。
视频播放器的主要功能为获取视频播放列表、点击播放视频和文件浏览。
当用户进人音乐播放界面时要实现对音乐播放
.76.微处理机2017 年
图3音视频播放流程图
模式的设定,完善播放列表上所显示的信息,比如歌 曲大小的显示、歌曲名称的显示和歌唱家的显示;此 外还要实现播放界面的歌词显示和上一曲和下一曲 的切换,以及增加和删除歌曲等功能。
当进人视频播放界面时,用户要完善播放列表 上视频的大小显示、视频的名称显示,实现播放界面 的快进和快退功能以及视频上一集和下一集的切 换,实现显示视频播放的进度和进度条所显示的播 放位置一致的功能,以及增加视频和删除视频等功 能。
5软件的设计
5.1数据库设计
Android中自带SQLite数据库,这是一个十分 小型的数据库,正适合于Android这种移动平台使 用。
SQLite是一个嵌人式数据库引擎,针对内存资源 有限的设备SQLiteDatabase专门提供了对应于添加 (insert)、删除(delete)、更新(update)、查询(query)的操作方法[6]。
这些方法封装了部分SQL语句,通过参数进 行拼接。
这些方法实际上是给那些不太了解SQL 语法的开发者使用的。
对于熟悉SQL语法的程序 员而言,直接使用execSQL()和rawQueiy()方法执行 SQL语句就能完成数据的添加、删除、更新、查询 操作。
这四种操作方法主要是在使用内容时使用,因为contentprovider中提供的增、删、改、查的方法,与 这一套一样,方便调用参数。
具体的用法为:insert ("表名 n,nullColumnHack,I M’,contentValue) null,ColumnHack:如果写null,就无法插人一^条空数据,如果想插人空数据,第二个参数必须写一个列名 (任意列),这个列名是用来拼接sql语句的,如果 contentValue为空,则后台不知道表的列名,无法构 建sql语句。
ContentValue为键值对,键对应列名,值对应插 人的值,返回值longid,插人的主键id,delete (“表 名”,条件,条件值),返回受影响的行数。
update(“表名”,contentValues(更新列、值),条件,条件值),返回受影响的行数。
query(“表名”,查询的字段,条件,条件值)[7]。
5.2数据库表设计
Android自带一^个MediaStore封闭类,专门来存 储媒体信息,通过 Uri EXTERNAL_CONTENT_URI 来访问SD卡中的歌曲详细信息。
歌曲信息表存放媒体信息,字段包括曲目编号、曲目名字、曲目编码、流派、歌词本、歌唱家、曲目文 件大小等。
视频信息表存放视频信息,字段包括视频编号、视频名字、视频编码、视频制作人、视频大小、剧集等 信息。
软件支持用户通过播放列表来获取各个音频或 者视频的详细信息,通过播放列表来操作音视频。
6系统测试
软件测试就是利用测试工具按照测试方案对应 用进行功能测试和性能测试,发现程序中存在的问 题。
可以根据需要,确定不同的测试方案,设计和维 护测试系统,并对测试方案可能出现的问题进行分 析。
执行测试用例后,需要跟踪故障,以确保开发的 产品适合需求。
软件测试的过程也是程序功能运行 的过程。
程序运行需要数据,为测试设计的数据也称 测试用例,其目的是找出软件可能出现的问题和潜 在的错误。
(1)测试工具
测试工具为Java开发环境、安卓SDK和安卓虚 拟机。
Java是一^种跨平台应用软件的面向对象程序 设计语言。
安卓SDK是安卓开发工具包。
安卓虚拟 机是由Google官方出厂,以方便开发者使用的安卓 环境,方便开发。
可以让开发者在PC端(电脑上)安 装运行模拟Android系统[8]。
6期徐艳菲等:基于Android的音视频播放器的研究与设计•77.
(2)测试结论
经过测试,系统各模块之间链接正常,各模块功 能都已经实现;系统功能完整、稳定,性能良好。
音、视频播放器列表界面如图4所示。
播放列表界面是 为了让用户可以直接在播放器上对音、视频资源进 行操作。
通过测试,系统达到了预期目标。
视额音乐
中华弟刊瞒1集 351KB
00:16
、|中华弟子规第2集 349KB ■J U 00:16
图4播放列表界面图
7结束语
软件米用的开发工具是Android Studio 2.2.3、Android SDK7.0,基于Java语言设计。
系统经过了需 求分析、设计以及测试,在安卓手机上实现了播放器 的功能且运行流畅。
经用户的体验证实,该音、视频 播放器操作简单、使用方便且不占用过多的内存。
音 视频播放器系统实现了播放器的基本功能:正常播 放音视频、准确显示播放进度、调节音量、点播上一曲/下一曲、显示歌词等。
具体的功能经过测试都
达到了预期的效果。
参考文献:
[1] 周雅翠•基于Android平台的个人事务管理系统设计[J]•
吉林建筑大学学报,2015(6):67-68•
Z h ou Y acu i.D esign of P erson a l A ffa irs M a n a g e m e n t S y s te m
B a sed o n A n d roid P la tfo rm [J].J o u rn a l of J ilin A rch itectu re
A n d C iv il E n g in eerin g In s titu te,2015(6):67-68.
[2] 邓昌友,肖遥,马小月•基于Android智能手机数据安全的
研究[J]•福建电脑,2015(12):5-6.
D en g C h a n g y ou,X iao Y ao,M a X iaoyu e.R esearch o n D a ta
S e cu rity of S m a r t P h on e B ased o n A n d roid [J].F u jia n C om
p u ter,2015 (12):5-6.
[3] 王毅.Android平台并行计算研究[J]•电子制作,2015(24):
26-27.
W an g Yi.R esearch o n P a ra lle l C om p u tin g of A n droid P la t-
form[J].E lectron ic P rod u ction,2015(24):26-27.
[4] 王冬•基于Android的天气预报软件的设计与实现[J]•电
子制作,2015(24):32-33.
W an g D on g.D esign a n d Im p le m e n ta tio n of W eath er F o re ca st
S o ftw a re B a sed o n A n d roid [J].E lectron ic P rod u ction,2015
(24):32-33.
[5] 马建设,赵雪江,苏萍,夏飞鹏•基于Android系统的视频
播放器开发[J]•计算机应用与软件,2013(11):69-71.
M a J ia n sh e,Z h a o X u ejian g,S u P in g,X ia F eipen g.D evelop
m e n t of V ideo P la y er B a sed o n A n d roid S y stem[J].C om p u ter
A pp lication s a n d S o ftw a re,2013 (11):69-71.
[6] 吴新华,万强•基于Android平台的手机游戏开发[J]•萍乡
学院学报,2015(6):66-69.
W u X in h u a,W an Q ia n g.M ob ile G a m e D ev elop m en t B a sed o n
A n droid P la tfo rm [J].J o u rn a l of P in g x ia n g C ollege,2015(6):
66-69.
[7]YA N G T ia n ch a n g,C U I H a olia n g,N IU S h a ozh a n g.D y n a m ic
L oa d in g V u ln era b ility D etection for A n d roid A p p lication s
T h ro u g h E n sem ble L ea rn in g[J].C h in ese J o u rn a l of E lectron
ics,2017(05):22-23.
[8] 董涛,李隐峰,范星光•基于Android的移动校园客户端的
研究与实现[J]•电子科技,2014(12):4-5•
D on g T a o,L i Y in fen g,F a n X in ggu an g.R esearch a n d Im ple
m e n ta tio n of M obile C a m p u s C lie n t B a sed o n A n d roid[J].
E lectron ic Scien ce a n d T ech n ology,2014 (12):4-5.。