基于Android的视频播放器的设计与实现
- 格式:doc
- 大小:5.46 MB
- 文档页数:53
2020.03.27 v1.2.0 beta版:更新说明:一、完美支持android1.五、android1.六、android2.0、android2.0一、android2.1平台;2、完美支持320×480、480×800、480×854等各类分辨率(自适应屏幕分辨率);3、支持在线音视频播放,支持URL input和从浏览器调用SeeJoPlayer播放器播放在线音视频;4、自动转为横屏播放,为用户提供更好的观看体验;5、修改了没有SD卡程序出错的Bug;6、美化了视频播放列表和操作说明的界面。
第一部份:功能介绍SeeJoPlayer的优势要紧在相对还算美观的界面和便利的交互操作上。
先说操作吧,它支持:一、全屏切换: 双击屏幕二、播放/暂停: 长按屏幕3、静音/恢复: 长按音量按钮4、播放列表: 操纵面板最右边的按钮(暂不支持编辑功能)五、音量调剂: 单击音量按钮,在弹出的音量显示区域触摸改变音量这些操作和PC上的播放器较为类似,希望大伙儿能用得适应。
至于界面的话,多说无益,直接上图吧:第二部份:源码解析一、VideoView与视频比例缩放:咱们能够很方便的取得VideoView的源代码,最简单的方式是直接在上找“.java”。
因此重写VideoView的进程其实只是在原先的基础上进行一些修改罢了,并非一个很麻烦的工作。
什么缘故Android自带的VideoView会维持视频的长宽比而不能让咱们很方便的自概念比例呢?我猜想可能Google 做Android也是一个很仓促的工程,许多代码并无考虑得太成熟。
VideoView的源码中有如此一段代码:1 @Override2 3 4 5 6 7 8 9101112131415161718192021222324252627protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec){//Log.i("@@@@", "onMeasure");int width = getDefaultSize(mVideoWidth, widthMeasureSpec);int height = getDefaultSize(mVideoHeight, heightMeasureSpec);if(mVideoWidth >0&& mVideoHeight >0){if( mVideoWidth * height > width * mVideoHeight ){//Log.i("@@@", "image too tall, correcting");height = width * mVideoHeight / mVideoWidth;}elseif( mVideoWidth * height < width * mVideoHeight ){//Log.i("@@@", "image too wide, correcting");width = height * mVideoWidth / mVideoHeight;}else{//Log.i("@@@", "aspect ratio is correct: " +//width+"/"+height+"="+//mVideoWidth+"/"+mVideoHeight);}}//Log.i("@@@@@@@@@@", "setting size: " + width + 'x' + height); setMeasuredDimension(width, height);}这确实是什么缘故长宽比不能改变的缘故了。
基于Android的视频播放器的设计与实现基于Android的视频播放器的设计与实现中文摘要如今,随着基于Android操作系统的智能手机的广泛应用,视频播放器已成为智能手机的一个必不可少的程序,广大用户迫切需要一个贴近用户、方便用户、个性化的视频播放器。
因此,设计一个基于android手机的多功能播放器,具有重要的实际意义。
本次毕业设计主要使用JDK + Eclipse + Android-SDK-Windows工具进行开发,使用的编程语言是Java语言。
该程序主要由4个不同Activity来实现,每个Activity实现相应的功能模块,能够有效满足Android手机用户在视频播放中的常见需求。
本论文详细介绍了播放器程序的设计思路、设计方案、系统结构和项目工程结构,对系统的可行性与需求性进行了详细的分析,阐述了系统各个模块功能的设计与实现。
对程序主要的Activity都进行了详细的介绍和分析,包括对其使用的布局文件的具体介绍,以及各个控件的作用。
在最后进行了程序测试,对每一个实现的模块功能都做了测试,并且记录了大量截图用来展示测试结果,以观察程序应有的功能是否正常运行,以及发现程序中可能存在的问题。
所开发的程序界面比较友好,操作相对容易,达到设计要求。
关键词:安卓;视频播放;Activity;MediaplayerThe Design and Implementation of Video Player Based on AndroidABSTRACTNow, with the wide application of smart phone based on the Android operating system, video player has become the essential application of smart phone. Most of consumers urgently require a personalized video player which is close to user and facilitate user. Therefore, the design of a multifunctional player based on android mobile phones has an important practical significance.The project design is developed by using JDK, Eclipse, and Android-SDK-Windows tools. The programming language is Java. The program consists of four different Activities and each Activity achieves the corresponding functional modules which can effectively satisfy the common requirements for playing video on Android mobile phones.This paper introduced the design ideas, design scheme, system architecture and project engineering structures of video player. The feasibility and requirements of system were analyzed in detail. The system function and each module were explained. The main Activity of the program are described and analyzed in detail including the using layout file, as well as the role of each control. Finally, I made the test for the program including the functions of each implemented modules. In order to observe whether the program should function properly and find the problems that may exist in the program, many screenshots were saved to demonstrate the test results. The developed program has a friendly interface and can be operated relatively easy, which has achieved the design requirement.KEY WORDS: Android; Video Play; Activity; Mediaplayer目录中文摘要 ...................................................................... ABSTRACT ...................................................................... 目录 (I)第一章绪论 01.1课题的来源及意义 01.2 ANDROID发展现状及前景 01.3项目的主要工作和解决的问题 (1)1.4系统设计的目标及基本思路 (2)1.5论文组织结构 (2)第二章 ANDROID视频播放器相关技术介绍 (3)2.1 ANDROID介绍 (3)2.2 ANDROID开发平台及相关技术 (4)2.2.1 ANDROID-WINDOWS开发环境 (4)2.2.2 MEDIAPLAYER视频技术 (5)2.2.3 SURFACE、SURFACEVIEW、SURFACEHOLDER三者之间的关系 (8)第三章系统分析及系统结构设计与实现 (10)3.1系统分析 (10)3.1.1系统可行性分析 (10)3.1.2 系统需求分析 (10)3.2系统结构设计 (11)第四章测试 (16)4.1测试环境和条件 (16)4.2测试 (16)4.3测试结果分析 (25)结论 (27)参考文献 (28)附录 (30)第一章绪论1.1课题的来源及意义在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
移动应用中的视频播放功能实现方法随着智能手机的广泛应用,移动应用程序的开发也日益火热。
在这些应用程序中,视频播放功能成为了用户追求的一个重要特性。
在这篇文章中,我们将探讨移动应用中实现视频播放功能的方法。
一、选择合适的视频播放器库为了实现视频播放功能,开发人员需要选择合适的视频播放器库。
目前市场上有多种视频播放器库可供选择,如ExoPlayer、Vitamio等。
这些库提供了丰富的功能和API,方便开发人员进行视频播放器的自定义和扩展。
开发人员可以根据项目需求选择最适合的视频播放器库。
二、视频格式的支持移动设备支持的视频格式有限,开发人员需要确保所使用的视频播放器库支持所需的视频格式。
通常,移动设备支持的视频格式包括MP4、MOV、AVI等常见的格式。
在开发移动应用时,开发人员应尽量使用这些常见的视频格式,以确保视频可以在多数移动设备上正确播放。
三、视频文件的下载和存储为了实现视频播放功能,开发人员需要考虑视频文件的下载和存储。
在移动应用中,常见的做法是将视频文件存储在应用的本地存储空间中,方便离线播放。
开发人员可以使用Android的下载管理器或iOS的NSURLSession等工具来实现视频文件的下载,然后将文件保存到应用的本地存储空间中。
四、视频流的播放除了播放本地视频文件,移动应用还可以播放网络上的视频流。
为了实现这一功能,开发人员需要使用流媒体服务器来存储和传输视频流,并使用视频播放器库来播放与流媒体服务器交互的视频流。
流媒体服务器可以是开源的,如NGINX、Wowza等,也可以是商业产品。
开发人员需要根据项目需求选择最适合的流媒体服务器。
五、视频播放控件的界面设计在移动应用中,视频播放功能通常需要与用户界面进行交互。
为了提供良好的用户体验,开发人员需要设计合适的视频播放控件界面。
这些控件可以包括播放/暂停按钮、进度条、音量控制等。
开发人员应根据应用的设计风格和用户需求,设计出符合用户期望的视频播放控件界面。
AndroidGSYVideoPlayer视频播放器功能的实现GSYVideoPlayerGSYVideoPlayer ⼀个基于IJkPlayer的播放器⽀持调节声⾳亮度边播边缓存使⽤了AndroidVideoCache;ExoPlayer使⽤SimpleCache⽀持多种协议h263\4\5、Https、concat、rtsp、hls、rtmp、crypto、mpeg等等简单滤镜(马赛克、⿊⽩、⾊彩过滤、⾼斯、模糊、模糊等等20多种)、动画、(⽔印、画⾯多重播放等)视频第⼀帧、视频帧截图功能,视频⽣成gif功能。
调整显⽰⽐例:默认、16:9、4:3、填充;播放时旋转画⾯⾓度(0,90,180,270);镜像旋转IJKPlayer、EXOPlayer、MediaPlayer切换、⾃定义内核⼩窗⼝、多窗体下(包括桌⾯)的⼩窗⼝播放。
⽚头⼴告、跳过⼴告⽀持、中间插⼊⼴告功能。
暂停前后台切换不⿊屏;调整不同清晰度的⽀持;⽆缝切换⽀持;锁定/解锁全屏点击功能;进度条⼩窗⼝预览可⾃定义渲染层、⾃定义管理层、⾃定义播放层(控制层)、⾃定义缓存层使⽤依赖1、JCenter 引⼊⽅法(推荐)你可以选择下⾯三种的其中⼀种,在module下的build.gradle添加。
A、直接引⼊//完整版引⼊implementation 'com.shuyu:GSYVideoPlayer:8.1.2'B、添加java和你想要的so⽀持:implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'//是否需要ExoPlayer模式implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'//根据你的需求ijk模式的soimplementation 'com.shuyu:gsyVideoPlayer-armv5:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-armv7a:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-arm64:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-x64:8.1.2'implementation 'com.shuyu:gsyVideoPlayer-x86:8.1.2'C、⽀持其他格式协议的(mpeg,rtsp, concat、crypto协议)implementation 'com.shuyu:gsyVideoPlayer-java:8.1.2'//是否需要ExoPlayer模式implementation 'com.shuyu:GSYVideoPlayer-exo2:8.1.2'//更多ijk的编码⽀持implementation 'com.shuyu:gsyVideoPlayer-ex_so:8.1.2'代码中的全局切换⽀持//EXOPlayer内核,⽀持格式更多PlayerFactory.setPlayManager(Exo2PlayerManager.class);//系统内核模式PlayerFactory.setPlayManager(SystemPlayerManager.class);//ijk内核,默认模式PlayerFactory.setPlayManager(IjkPlayerManager.class);//exo缓存模式,⽀持m3u8,只⽀持exoCacheFactory.setCacheManager(ExoPlayerCacheManager.class);//代理缓存模式,⽀持所有模式,不⽀持m3u8等,默认CacheFactory.setCacheManager(ProxyCacheManager.class);//切换渲染模式GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);//默认显⽰⽐例GSYVideoType.SCREEN_TYPE_DEFAULT = 0;//16:9GSYVideoType.SCREEN_TYPE_16_9 = 1;//4:3GSYVideoType.SCREEN_TYPE_4_3 = 2;//全屏裁减显⽰,为了显⽰正常 CoverImageView 建议使⽤FrameLayout作为⽗布局GSYVideoType.SCREEN_TYPE_FULL = 4;//全屏拉伸显⽰,使⽤这个属性时,surface_container建议使⽤FrameLayoutGSYVideoType.SCREEN_MATCH_FULL = -4;/**** SCREEN_TYPE_CUSTOM 下⾃定义显⽰⽐例* @param screenScaleRatio ⾼宽⽐,如 16:9*/public static void setScreenScaleRatio(float screenScaleRatio)//切换绘制模式GSYVideoType.setRenderType(GSYVideoType.SUFRACE);GSYVideoType.setRenderType(GSYVideoType.GLSURFACE);GSYVideoType.setRenderType(GSYVideoType.TEXTURE);//ijk关闭logIjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);//exoplayer⾃定义MediaSourceExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {@Overridepublic MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {//可⾃定义MediaSourcereturn null;}});⾃定义⼀个播放器public class LiveVideo extends StandardGSYVideoPlayer {public LiveDataFullscreenButtonClick liveDataClick;//点击全屏按钮回调/*** 恢复暂停状态*/public void onResume() {onVideoResume();}/*** 暂停状态*/public void onPause() {onVideoPause();}/*** 接⼝回调* @param liveDataClick*/public void setOnFullscreenButtonClick(LiveDataFullscreenButtonClick liveDataClick) { this.liveDataClick = liveDataClick;}/* 重写⽅法⾃定义layout id与video_layout_standard.xml⼀致不重新使⽤系统默认布局*/ @Overridepublic int getLayoutId() {return yout.test;}public LiveVideo(Context context, Boolean fullFlag) {super(context, fullFlag);init();}public LiveVideo(Context context) {super(context);init();}public LiveVideo(Context context, AttributeSet attrs) {super(context, attrs);init();}/* 初始化操作 */private void init() {//EXOPlayer内核,⽀持格式更多// PlayerFactory.setPlayManager(Exo2PlayerManager.class);//代理缓存模式,⽀持所有模式,不⽀持m3u8等,默认// CacheFactory.setCacheManager(ProxyCacheManager.class);//系统内核模式// PlayerFactory.setPlayManager(SystemPlayerManager.class);//ijk内核,默认模式PlayerFactory.setPlayManager(IjkPlayerManager.class);settingsVideo();}/* ⼀些播放器的设置做⼀些UI的隐藏可根据⾃⼰需求*/public void settingsVideo() {GSYVideoType.enableMediaCodec();//使能硬解码,播放前设置Debuger.enable();//打开GSY的Log//隐藏⼀些UIsetViewShowState(mBottomContainer, VISIBLE);setViewShowState(mTopContainer, VISIBLE);setViewShowState(mLockScreen, GONE);setViewShowState(mLoadingProgressBar, GONE);setViewShowState(mTopContainer, GONE);setViewShowState(mThumbImageView, GONE);setViewShowState(mBottomProgressBar, GONE);//显⽰⼀些UI 进度时间当前时间全屏返回加载Loading 暂停开始setViewShowState(mStartButton, VISIBLE);setViewShowState(mLoadingProgressBar, VISIBLE);setViewShowState(mFullscreenButton, VISIBLE);setViewShowState(mBackButton, GONE);setViewShowState(mProgressBar, VISIBLE);setViewShowState(mCurrentTimeTextView, VISIBLE);setViewShowState(mTotalTimeTextView, VISIBLE);setEnlargeImageRes(R.drawable.full);setShrinkImageRes(R.drawable.full);}//拦截事件@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {mFullscreenButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {liveDataClick.onClick();}});return super.dispatchTouchEvent(ev);}/* 取消双击暂停 */@Overrideprotected void touchDoubleUp() {// super.touchDoubleUp();}public interface LiveDataFullscreenButtonClick {void onClick();}}<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@android:color/black"><RelativeLayoutandroid:id="@+id/surface_container"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"></RelativeLayout><RelativeLayoutandroid:id="@+id/thumb"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_alignParentBottom="true"android:layout_alignParentEnd="true"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_alignParentStart="true"android:layout_alignParentTop="true"android:background="#000000"android:scaleType="fitCenter" /><LinearLayoutandroid:id="@+id/layout_bottom"android:layout_width="match_parent"android:layout_height="40dp"android:layout_alignParentBottom="true"android:background="#99000000"android:gravity="center_vertical"android:orientation="horizontal"android:visibility="invisible"><TextViewandroid:id="@+id/current"android:textColor="@color/white"style="@style/news_des_style"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="16dp"android:text="00:00"/><SeekBarandroid:id="@+id/progress"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_weight="1.0"android:background="@null"android:padding="10dp"android:max="100"android:maxHeight="4dp"android:minHeight="4dp"android:paddingBottom="8dp"android:paddingTop="8dp"android:progressDrawable="@drawable/video_progress_bg" android:thumb="@drawable/video_seek_thumb" /><TextViewandroid:id="@+id/total"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="16dp"android:text="00:00"android:textColor="@color/white"style="@style/news_des_style"/></LinearLayout><LinearLayoutandroid:id="@+id/layout_top"android:layout_width="match_parent"android:layout_height="48dp"android:background="@drawable/video_title_bg"android:gravity="center_vertical"><ImageViewandroid:id="@+id/back"android:layout_width="48dp"android:layout_height="48dp"android:paddingLeft="10dp"android:scaleType="centerInside"android:src="@drawable/video_back" /><Viewandroid:layout_weight="1"android:layout_width="0dp"android:layout_height="match_parent"/><ImageViewandroid:id="@+id/fullscreen"style="@style/left_icon_style"android:src="@drawable/full" /></LinearLayout><ProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/loading"android:layout_centerInParent="true"/><ImageViewandroid:visibility="gone"android:layout_width="50dp"android:layout_height="50dp"android:layout_centerInParent="true"android:padding="5dp"android:id="@+id/start"/></RelativeLayout>api/*** 设置播放URL** @param url 播放url* @param cacheWithPlay 是否边播边缓存* @param title title* @return*/video.setUp("url", false, "");//设置播放路径video.startPlayLogic();//开始播放到此这篇关于Android GSYVideoPlayer视频播放器功能的实现的⽂章就介绍到这了,更多相关Android GSYVideoPlayer视频播放器内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
摘要随着社会的发展,科技的进步互联网技术变得越来越普及,手机已经逐渐的受到了广大人民群众的喜爱,也渐渐的步入到了各家各户。
与此同时,视频播放器成了人们生活中常用的一款系统软件,视频能让人心情愉快、缓解压力,因此,设计一款结构简单、界面友好的Android视频播放器显得尤为重要。
本系统为了保证用户与手机系统进行友好的交互,满足用户与对视频观看的要求,选用Java语言,Vitamio框架进行开发。
系统实现了基本的视频使用功能,例如本地播放视频、网络播放视频、列表显示已播放视频、侧滑删除功能等等,有效保证了Android视频播放器系统数据的完整性及安全性。
该系统结构简单、使用方便,不仅可以节约成本,提高效益,还具有一定的实际意义。
关键词:Android,视频,视频播放器,Java语言ABSTRACTWith the development of society, the advancement of science and technology Internet technology has become more and more popular, mobile phones have gradually been loved by the masses of the people, and gradually stepped into various households. At the same time, the video player has become a system software commonly used in people's lives. Video can make people feel happy and relieve stress. Therefore, it is especially important to design a simple and friendly interface Android video player.In order to ensure the friendly interaction between the user and the mobile phone system, the system satisfies the requirements of the user and the video viewing, and selects the Java language and the Vitamio framework for development. The system implements basic video usage functions, such as local play video, network play video, list display played video, side slide delete function, etc., which effectively ensures theintegrity and security of the Android video player system data.The system is simple in structure and convenient to use, and can not only save cost, improve efficiency, but also has certain practical significance.Key words: Android,video,video player,Java language目录第1章引言 (4)1.1 研究背景 (4)1.2 国内外研究现状 (4)1.2.1 国外研究现状 (4)1.2.2 国内研究现状 (4)1.3 研究内容 (5)1.4 研究意义 (5)1.5 论文结构 (6)第2章关键技术 (6)2.1 Android简介 (6)2.2 Android的系统架构 (7)2.2.2 应用程序层 (7)2.2.3 应用程序框架 (7)2.2.4 系统运行库 (8)2.3 Java语言 (8)2.3.1 Java语言简介 (8)2.3.2 Java语言特点 (8)2.4 Vitamio框架 (9)2.5 开发平台 (9)第3章系统需求分析 (10)3.1 业务流程分析 (10)3.2 功能性需求 (11)3.3 非功能性需求 (11)3.3.1 数据安全 (11)3.3.2 运行状态 (11)3.4 可行性分析 (12)3.4.1 技术可行性 (12)3.4.2 操作可行性 (12)3.4.3 经济可行性 (13)第4章基于Android的视频播放器设计 (13)4.1 软件设计步骤 (13)4.2 设计目标与原则 (14)4.3 系统总体设计 (14)4.4 功能模块设计 (15)4.4.2 本地视频 (16)4.4.3 网络视频 (16)4.4.4 侧滑删除 (16)4.4.5 声音与进度条 (16)4.4.6 查看图片 (16)第5章系统实现与测试 (17)5.1 系统实现 (17)5.1.1 本地视频 (17)5.1.2 网络视频 (18)5.1.3 侧滑删除 (19)5.1.4 调节进度条与声音 (20)5.1.5 查看图片 (22)5.2 系统测试 (24)5.2.1 测试原则 (24)5.2.2 测试说明 (24)5.2.3 本地视频测试 (25)5.2.4 侧滑删除测试 (25)第6章总结 (25)参考文献 (26)致谢 ................................................................................................... 错误!未定义书签。
毕业设计中文题目基于安卓的音乐播放器系统的设计与实现英文题目Design and Implementation of The MusicPlayer Based on Android院系:计算机与信息工程学院年级专业:金融服务姓名:学号:指导教师:职称:年月摘要基于安卓的应用软件开发快捷简单,用户体验良好,开发出满足消费者要求的移动终端软件具有广阔的市场前景。
而随着手机的使用量有了大幅地提高,多媒体功能的开发已经成了手机未来发展的功能之一,扩展和优化手机多媒体功能将成为未来几年移动程序开发的新趋势。
本文研究的音乐播放器系统是以Android开发为基础,用到的软件是Java 的开发软件Eclipse,搭建的开发环境是Eclipse + Android SDK,该系统是在Android系统下编码和改进的。
本文研究的音乐播放器集播放、暂停、上下首、歌词显示一些基本的功能于一体,同时具有分享、收藏、设置休息时间的友好性功能,大大满足用户的需求。
关键词:手机;安卓;java;音乐播放ABSTRACTABSTRACTThe application development based on Android is quick and easy, in addition, the user’s experience is good. Therefore, developing mobile terminal software that can meet consumer demands for market has broad prospects.With the production and use of mobile phones greatly improved, the development of multimedia functions has become one of the future development of feature phones, so expansion and optimization of mobile multimedia features will become a new trend in the next few years on the mobile application development.The music player system in this paper is based on Android development , using Java development software Eclipse, building Eclipse+Android SDK development environment, and the system is codded and improved under the Android system.In this paper, the music player has the basic functions which include play, pause, previous one, the next song, the lyrics show. At the same time, the music player can share, collect, set rest time, and it is able to satisfy the needs of users.Key W ords : Phones; Android; Java; Music Player目录第1章引言 (1)1.1 选题背景 (1)1.2 国内外研究现状 (1)1.3 研究内容 (2)1.4 主要设计思路 (2)1.5 论文组织结构 (3)第2章系统相关技术介绍 (4)2.1 Android的定义 (4)2.2 Android的优势 (4)2.3 Android带来的影响 (4)2.3.1 对消费者的影响 (4)2.3.2 对手机制造商的影响 (5)2.3.3 对运营商的影响 (5)2.4 JA V A介绍 (5)2.5 Android内核 (6)2.6 Android的系统架构 (6)2.7 Lib介绍 (7)第3章系统需求分析 (9)3.1 系统可行性分析 (9)3.1.1 技术可行性 (9)3.1.2 操作可行性 (9)3.1.3 经济可行性 (9)3.1.4 社会可行性 (9)3.2 总体需求 (10)3.3 功能需求 (10)3.4 开发运行环境需求 (13)3.5 性能需求 (13)3.6 其它需求 (13)第4章系统概要设计 (15)4.1 概述 (15)4.2 系统功能结构 (15)4.2.1 主界面模块设计 (16)4.2.2 播放界面模块设计 (16)4.2.3 菜单界面模块设计 (17)4.2.4 歌曲设置模块设计 (17)4.2.5 其他模块设计 (18)第5章系统实现 (19)5.1 数据库设计 (19)5.2 模块界面实现 (20)5.2.1 播放器主界面 (20)5.2.2 音乐播放界面 (21)5.2.3 音乐歌词显示页面 (22)5.2.4 音乐菜单界面 (23)5.2.5 音乐歌曲设置 (24)5.2.6 音乐歌曲分享 (25)第6章系统测试 (27)6.1 测试重要性 (27)6.2测试方法 (27)6.3系统功能测试 (27)6.3.1 播放器播放功能测试 (27)6.3.2 播放器菜单功能测试 (28)6.3.3 播放器歌曲设置功能测试 (28)6.3.4 播放器其他模块功能测试 (29)第7章结论与展望 (30)7.1 结论 (30)7.2 进一步的工作方向 (30)参考文献 (31)致谢 (32)第1章引言1.1 选题背景科学技术的日新月异,加上人们生活水平的不断提高,使得手机在人们的日常生活中扮演着极其重要的角色。
基于Android的视频播放器的设计与实现基于Android的视频播放器的设计与实现中文摘要如今,随着基于Android操作系统的智能手机的广泛应用,视频播放器已成为智能手机的一个必不可少的程序,广大用户迫切需要一个贴近用户、方便用户、个性化的视频播放器。
因此,设计一个基于android手机的多功能播放器,具有重要的实际意义。
本次毕业设计主要使用JDK + Eclipse + Android-SDK-Windows工具进行开发,使用的编程语言是Java语言。
该程序主要由4个不同Activity来实现,每个Activity实现相应的功能模块,能够有效满足Android手机用户在视频播放中的常见需求。
本论文详细介绍了播放器程序的设计思路、设计方案、系统结构和项目工程结构,对系统的可行性与需求性进行了详细的分析,阐述了系统各个模块功能的设计与实现。
对程序主要的Activity都进行了详细的介绍和分析,包括对其使用的布局文件的具体介绍,以及各个控件的作用。
在最后进行了程序测试,对每一个实现的模块功能都做了测试,并且记录了大量截图用来展示测试结果,以观察程序应有的功能是否正常运行,以及发现程序中可能存在的问题。
所开发的程序界面比较友好,操作相对容易,达到设计要求。
关键词:安卓;视频播放;Activity;MediaplayerThe Design and Implementation of Video Player Based on AndroidABSTRACTNow, with the wide application of smart phone based on the Android operating system, video player has become the essential application of smart phone. Most of consumers urgently require a personalized video player which is close to user and facilitate user. Therefore, the design of a multifunctional player based on android mobile phones has an important practical significance.The project design is developed by using JDK, Eclipse, and Android-SDK-Windows tools. The programming language is Java. The program consists of four different Activities and each Activity achieves the corresponding functional modules which can effectively satisfy the common requirements for playing video on Android mobile phones.This paper introduced the design ideas, design scheme, system architecture and project engineering structures of video player. The feasibility and requirements of system were analyzed in detail. The system function and each module were explained. The main Activity of the program are described and analyzed in detail including the using layout file, as well as the role of each control. Finally, I made the test for the program including the functions of each implemented modules. In order to observe whether the program should function properly and find the problems that may exist in the program, many screenshots were saved to demonstrate the test results. The developed program has a friendly interface and can be operated relatively easy, which has achieved the design requirement.KEY WORDS: Android; Video Play; Activity; Mediaplayer目录中文摘要 ...................................................................... ABSTRACT ...................................................................... 目录 (I)第一章绪论 01.1课题的来源及意义 01.2 ANDROID发展现状及前景 01.3项目的主要工作和解决的问题 (1)1.4系统设计的目标及基本思路 (2)1.5论文组织结构 (2)第二章 ANDROID视频播放器相关技术介绍 (3)2.1 ANDROID介绍 (3)2.2 ANDROID开发平台及相关技术 (4)2.2.1 ANDROID-WINDOWS开发环境 (4)2.2.2 MEDIAPLAYER视频技术 (5)2.2.3 SURFACE、SURFACEVIEW、SURFACEHOLDER三者之间的关系 (8)第三章系统分析及系统结构设计与实现 (10)3.1系统分析 (10)3.1.1系统可行性分析 (10)3.1.2 系统需求分析 (10)3.2系统结构设计 (11)第四章测试 (16)4.1测试环境和条件 (16)4.2测试 (16)4.3测试结果分析 (25)结论 (27)参考文献 (28)附录 (30)第一章绪论1.1课题的来源及意义在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。
不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。
同时,随着科技的发展,计算机越来越精致,手机也越来越智能化,所以我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。
手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。
一个好的软件,能够标志一个手机品牌的地位。
所以,开发一款好的手机软件是相当必要的。
以前我们看电影,看视频,都要去电影院或者是影吧,而且时间有限,很不方便;而现在是在电脑上或者手机上看视频,看小说,文档等等。
以此看来,一个好的手机视频播放器软件的开发是相当有必要的。
作为集通讯与娱乐消费为一体的智能手机,播放器是其中一个必不可少的重要功能,一个贴近用户,方便用户的多功能的播放器也是用户所渴望的,更是开发人员应当致力于的。
随着Google推出的Android手机的不断更新换代,技术方面也日趋成熟,一个良好的视频播放器的设计与实现已经成为可能。
目前,作为Android的手机用户而言,都有视频播放器的实体应用。
但是,对于绝大多少而言,其界面单调,功能单一。
比如,界面与其他非智能的手机没有大的区别,而功能上面,也就除了基本的播放控制流程之外,多上一个视频基本信息的显示,同时加上一个对预设定路径的播放列表的展示。
因此,开发一款界面友好、炫丽、功能更多的视频播放器,更好的贴近用户,满足用户需求,其应用前景也是相当乐观的。
1.2 Android发展现状及前景Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android操作系统最初由Andy Rubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google 与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android 智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
由此可见,Android占有非常可观的市场前景。
具有开源特性的Android平台打破了之前Symbian、Windows mobile等操作系统收取高额授权费用的模式,使得智能手机成本大大的降低。
而正是由于它开放源代码,使得手机产生更多个性化的应用。
同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。
以Google、苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是Google发布Android平台的意义,也是Android平台存在的使命所在。
作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事G oogle手机软件的应用以及本地化的软件的开发,比如将在Google手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。
国内众多企业也将眼光投入到Android上面,并启动了相关的计划来深入的理解并发展Android。
更多的手机软件开发企业已经或者筹备着将公司进行转型,从其他方向的开发转向到Android的开发。
由此可见,无论是在国内还是在国外,Android平台对手机软件行业和移动手机平台将发挥极大地推动作用,而在未来的几年时间里,Android将越发的凸显自己的重要性[1]。