已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于基于 Android 的视频播放器的设计与实现的视频播放器的设计与实现 中中 文文 摘摘 要要 如今 随着基于 Android 操作系统的智能手机的广泛应用 视频播放器已成为智能手机 的一个必不可少的程序 广大用户迫切需要一个贴近用户 方便用户 个性化的视频播放器 因此 设计一个基于 android 手机的多功能播放器 具有重要的实际意义 矚慫润厲钐瘗睞枥庑赖 本次毕业设计主要使用 JDK Eclipse Android SDK Windows 工具进行开发 使用的 编程语言是 Java 语言 该程序主要由 4 个不同 Activity 来实现 每个 Activity 实现相应的功 能模块 能够有效满足 Android 手机用户在视频播放中的常见需求 聞創沟燴鐺險爱氇谴净 本论文详细介绍了播放器程序的设计思路 设计方案 系统结构和项目工程结构 对系 统的可行性与需求性进行了详细的分析 阐述了系统各个模块功能的设计与实现 对程序主 要的 Activity 都进行了详细的介绍和分析 包括对其使用的布局文件的具体介绍 以及各个 控件的作用 在最后进行了程序测试 对每一个实现的模块功能都做了测试 并且记录了大 量截图用来展示测试结果 以观察程序应有的功能是否正常运行 以及发现程序中可能存在 的问题 所开发的程序界面比较友好 操作相对容易 达到设计要求 残骛楼諍锩瀨濟溆塹籟 关键词 关键词 安卓 安卓 视频播放 视频播放 ActivityActivity MediaplayerMediaplayer The Design and Implementation of Video Player Based on Android酽锕极額閉镇桧猪訣 锥 ABSTRACT Now 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茕桢广鳓鯡选块网羈泪 I 目目 录录 中文摘要 I鹅娅尽損鹌惨歷茏鴛賴 ABSTRACT II籟丛妈羥为贍偾蛏练淨 目 录 III預頌圣鉉儐歲龈讶骅籴 第一章 绪论 1渗釤呛俨匀谔鱉调硯錦 1 1 课题的来源及意义 1铙誅卧泻噦圣骋贶頂廡 1 2 ANDROID 发展现状及前景 1擁締凤袜备訊顎轮烂蔷 1 3 项目的主要工作和解决的问题 2贓熱俣阃歲匱阊邺镓騷 1 4 系统设计的目标及基本思路 3坛摶乡囂忏蒌鍥铃氈淚 1 5 论文组织结构 3蜡變黲癟報伥铉锚鈰赘 第二章 ANDROID 视频播放器相关技术介绍 4買鲷鴯譖昙膚遙闫撷凄 2 1 ANDROID 介绍 4綾镝鯛駕櫬鹕踪韦辚糴 2 2 ANDROID 开发平台及相关技术 5驅踬髏彦浃绥譎饴憂锦 2 2 1 ANDROID WINDOWS 开发环境 5猫虿驢绘燈鮒诛髅貺庑 2 2 2 MEDIAPLAYER 视频技术 6锹籁饗迳琐筆襖鸥娅薔 2 2 3 SURFACE SURFACEVIEW SURFACEHOLDER 三者之间的关系 9構氽頑黉碩饨荠龈话骛 第三章 系统分析及系统结构设计与实现 11輒峄陽檉簖疖網儂號泶 3 1 系统分析 11尧侧閆繭絳闕绚勵蜆贅 3 1 1 系统可行性分析 11识饒鎂錕缢灩筧嚌俨淒 3 1 2 系统需求分析 11凍鈹鋨劳臘锴痫婦胫籴 3 2 系统结构设计 12恥諤銪灭萦欢煬鞏鹜錦 第四章 测试 16鯊腎鑰诎褳鉀沩懼統庫 4 1 测试环境和条件 16硕癘鄴颃诌攆檸攜驤蔹 4 2 测试 16阌擻輳嬪諫迁择楨秘騖 4 3 测试结果分析 24氬嚕躑竄贸恳彈瀘颔澩 结 论 25釷鹆資贏車贖孙滅獅赘 参考文献 26怂阐譜鯪迳導嘯畫長凉 附 录 28谚辞調担鈧谄动禪泻類 合肥学院计算机科学与技术系毕业论文 0 第一章第一章 绪论绪论 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 在全球的市场份额首次超过塞班系统 合肥学院计算机科学与技术系毕业论文 1 跃居全球第一 2012 年 11 月数据显示 Android 占据全球智能手机操作系统市场 76 的份 额 中国市场占有率为 90 由此可见 Android 占有非常可观的市场前景 纣忧蔣氳頑莶驅藥悯 骛 具有开源特性的 Android 平台打破了之前 Symbian Windows mobile 等操作系统收取高 额授权费用的模式 使得智能手机成本大大的降低 而正是由于它开放源代码 使得手机产 生更多个性化的应用 同时 合作方能够在这里得到利润或者创造价值 手机软件行业得到 维护协调发展 以 Google 苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推 动移动互联网的发展 这正是 Google 发布 Android 平台的意义 也是 Android 平台存在的使 命所在 作为 Android 平台成员之一的中国移动也投资成立了一家通讯公司 专门从事 G oogle 手机软件的应用以及本地化的软件的开发 比如将在 Google 手机平台上添加飞信 输入法等一系列符合国内用户使用特色的功能 国内众多企业也将眼光投入到 Android 上面 并启动了相关的计划来深入的理解并发展 Android 更多的手机软件开发企业已经或者筹备 着将公司进行转型 从其他方向的开发转向到 Android 的开发 由此可见 无论是在国内还 是在国外 Android 平台对手机软件行业和移动手机平台 将发挥极大地推动作用 而在未来 的几年时间里 Android 将越发的凸显自己的重要性 1 颖刍莖蛺饽亿顿裊赔泷 目前国内的 Android 开发还是主要以应用开发为主 主要分成 3 类 为企业开发应用 开发通用应用 放到 Android Market 或者其他 App Market 销售 以及游戏开发 放到 Android Market 或者其他 App Market 销售 第一类开发者一般身处规模较大的公司 这些 公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案 除了根据需求对系统 进行定制外 更多的工作在于为这些系统编写定制的应用 第二类开发者 一般处于创业型 公司或者是独立开发者 他们的盈利方式主要是 2 种 为国外公司进行外包开发 或者通过 Google 的移动广告 AdMob 通过广告点击分成 而理论上的通过付费下载的形式来盈利 的 现在国内鲜见成功者 第三类开发者 目前和第二类开发者类似 3 濫驂膽閉驟羥闈詔寢賻 1 3 项目的主要工作和解决的问题项目的主要工作和解决的问题 本课题的研究目的就是要通过对基于 Android 的多功能视频播放的系统设计与实现 探 讨该系统的实现过程 以有效满足 Android 手机用户在视频播放中常见的需求 本课题的主 要内容为 銚銻縵哜鳗鸿锓謎諏涼 1 根据对 Android 手机视频播放器功能的了解和分析 从功能和实用的角度出发 设计 并实现 Android 视频播放器 挤貼綬电麥结鈺贖哓类 2 对 Android 视频播放器进行模块划分 3 对各模块分析并设计 实现 合肥学院计算机科学与技术系毕业论文 2 4 从功能多样性角度考虑 尽可能添加一些附加的设计方案并实现 1 4 系统设计的目标及基本思路系统设计的目标及基本思路 本次毕业设计使用 Eclipse ADT 插件 DDMS 插件搭建的 Android 开发平台环境 开 发语言为 Java 语言 需要开发出基于 Android 平台的视频播放器应用程序 并能够在 Android 手机上运行 赔荊紳谘侖驟辽輩袜錈 基本思路介绍如下 第一步 程序运行时进入主 Activity 通过更新或查看文件列表 选择一个视频文件 第二步 读入视频文件 调用 Mediaplayer setDataSource 方法设置文件路径 并通过 Mediaplayer prepare 方法将 Mediaplayer 对象置为准备状态 塤礙籟馐决穩賽釙冊庫 第三步 调用 Mediaplayer start 方法播放视频 此时可以调节音量 进度 暂停播放 重置播放等等操作 裊樣祕廬廂颤谚鍘羋蔺 第四步 播放完成后 Mediaplayer 对象进入了 PlaybackCompleted 状态 此时可以选择 其他视频文件进入下一个视频的播放或者退出程序 仓嫗盤紲嘱珑詁鍬齊驁 1 5 论文组织结构论文组织结构 本文主要由 中英文摘要 目录 绪论 课题相关技术介绍 系统可行性分析 系统需 求分析 程序实现 测试 结束语 参考文献 致谢语以及附录构成 绽萬璉轆娛閬蛏鬮绾瀧 第一章绪论主要分析和介绍背景 课题主要研究的问题以及系统设计的目标及基本思路 第二章主要介绍课题的相关技术 第三章是系统分析以及系统功能的设计与实现 其中包括系统可行性分析和系统需求分 析 第四章是程序测试和结果的分析与研究等 最后对全文进行了总结和展望 附录部分为主要功能的函数源代码 合肥学院计算机科学与技术系毕业论文 3 第二章第二章 AndroidAndroid视频播放器相关技术介绍视频播放器相关技术介绍 2 1 Android 介绍介绍骁顾燁鶚巯瀆蕪領鲡赙 Android 是 机器人 的意思 是 Google 公司于 2007 年 11 月 5 日发布的一个机遇 Linux 平 台的开源手机操作系统 该系统由底向上一共分为了 4 层 如图 2 1 每一层对把底层实现 封装 并提供调用接口给上一层 瑣钋 濺暧惲锟缟馭篩凉 图 2 1 Android 系统架构 1 Linux 内核 Linux Kernel Android 运行在 Linux Kernel2 6 之上 但是把 Linux 内 核 GNU 协议约束的部分做了取代 这样 运行在 Android 上的程序可以用于商业目的 Linux 内核是硬件和软件层之间的抽象层 鎦诗涇艳损楼紲鯗餳類 2 中间件 中间件包括两部分 核心库和运行时环境 Libraries New 2010舻当为遙头韪鳍哕晕糞 8 郭宏志 Android 应用开发详解 M 北京 电子工业出版社 2012 9 王向辉等 Android 应用开发 M 北京 清华大学出版社 2010 10 陈刚 Java 开发利器 Eclipse 从入门到精通 M 北京 清华大学出版社 2005 合肥学院计算机科学与技术系毕业论文 27 致致 谢谢 本课题在选题及进行过程中得到王晓峰老师的悉心指导 论文行文过程中 王老师多次 帮助我分析思路 开拓视角 在我遇到困难想放弃的时候给予我最大的支持和鼓励 王老师 严谨求实的治学态度 踏实坚韧的工作精神 将使我终生受益 再多华丽的言语也显苍白 在此 谨向王老师致以诚挚的谢意和崇高的敬意 感谢大学四年来 计科系所有老师对我学 习上的帮助和生活上的关怀 正是您们的辛勤工作 才使我得以顺利地完成学业 取得学位 浓浓师恩 终生不忘 感谢我的室友们 我们一起经历过的聚散喜悲 悲欢离合 一起走过 的每一段路 我一生都不会忘记 友情的无私为我们的大学时光重重地写下了无悔 感谢我 的家人 养育之恩 无以回报 我将用自己最大的努力给你们欣慰 大学四年的生活即将随 着论文的完成划上句号 最后 我感谢大学四年以来给过我帮助和关注的所有人 更加感谢 给过我挫折的所有人 你们用不同的方式给了我成长 鸪凑鸛齏嶇烛罵奖选锯 合肥学院计算机科学与技术系毕业论文 28 附附 录录 以下是部分功能的源代码及相关注释 private void getFileDir String filePath 获得文件路径 mPath setText filePath items new ArrayList paths new ArrayList File f new File filePath File files f listFiles if filePath equals rootPath files null items add b1 paths add rootPath items add b2 paths add f getParent if files null for int i 0 i files length i File file files i items add file getName paths add file getPath setListAdapter new FileAdapter this items paths 筧驪鴨栌怀鏇颐嵘悅废 SurfaceView 触摸监听类 class TouchListener implements OnTouchListener Override public boolean onTouch View v MotionEvent event if event getAction MotionEvent ACTION DOWN 触摸屏幕时停止播放 并显示停止控件韋鋯鯖荣擬滄閡悬贖蘊 if mediaPlayer isPlaying mediaPlayer pause 合肥学院计算机科学与技术系毕业论文 29 pause true goView setVisibility ViewGroup VISIBLE return true return false SeekBar 监听类 Private class SeekBarListener implements SeekBar OnSeekBarChangeListener涛貶 騸锬晋铩锩揿宪骟 int startPosition Override public void onProgressChanged SeekBar seekBar int progress boolean fromUser 钿蘇饌華檻杩鐵样说泻 currentTime setText new TimeFormate seekBar getProgress formatetime 戧礱風熗浇鄖适泞嚀贗 Override public void onStartTrackingTouch SeekBar seekBar startPosition seekBar getProgress Override public void onStopTrackingTouch SeekBar seekBar 当用户结束对滑块的滑动 时 将mediaPlayer播放位置设为滑块结束对应位置購櫛頁詩燦戶踐澜襯鳳 currentTime setText new TimeFormate seekBar getProgress formatetime 嗫奐闃頜瑷踯谫瓒兽粪 if mediaPlayer isPlaying mediaPlayer seekTo seekBar getProgress else seekBar setProgress startPosition 自动搜索视频文件模块 private void showUpdateDialog 显示等待对话框 dialog new ProgressDialog this dialog setTitle 请稍后 设置ProgressDialog 标题 合肥学院计算机科学与技术系毕业论文 30 dialog setMessage 正在扫描存储卡 设置ProgressDialog提示信息虚龉 鐮宠確嵝誄祷舻鋸 dialog setIcon R drawable search 设置ProgressDialog标题图标與顶鍔笋类謾蝾 纪黾廢 dialog setProgressStyle ProgressDialog STYLE SPINNER 设置进度条风格 风格为圆形 旋转的 結释鏈跄絞塒繭绽綹蕴 dialog setIndeterminate false 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确 餑诎鉈鲻缥评缯肃鮮驃 dialog setCancelable true 设置ProgressDialog 是否可以按退回键取消 爷 缆鉅摯騰厕綁荩笺潑 dialog show String rootpath Environment getExternalStorageDirectory getPath 锞 炽邐繒萨蝦窦补飙赝 new Thread new UpdateThread rootpath start 启动子线程 在子线程中扫 描SD卡曠戗輔鑽襉倆瘋诌琿凤 class UpdateThread implements Runnable private String rootpath public UpdateThread String rootpath this rootpath rootpath Override public void run int count SDCardMedia scanSDMedia rootpath 扫描SD卡上的视频文件轉厍 蹺佥诎脚濒谘閥糞 dialog cancel Message msg handler obtainMessage Bundle bundle msg getData bundle putInt count count msg setData bundle handler sendMessage msg 扫描完毕发送消息 给出提示 Handler handler new Handler Override public void handleMessage Message msg int count msg getData getInt count Toast makeText MediaPlayerActivity this 共更新了 count 条记录 请 点击查看列表按钮查看 1 show 嬷鯀賊沣謁麩溝赉涞锯 合肥学院计算机科学与技术系毕业论文 31 public class SDCardMedia private ContentResolver contentResolver private static List pathList private static List Map videoDataList 讯鎬謾蝈贺綜枢辄锁廪 static videoDataList new ArrayList Map 兒躉讀闶軒鲧擬钇標藪 pathList new ArrayList public SDCardMedia Context context contentResolver context getContentResolver 获取SD卡的所有视频信息 public List Map getAllVideos String projection new String MediaStore Video Media TITLE 繅藺 詞嗇适篮异铜鑑骠 第一个参数为访问Provider的路径 第二个参数为查询的列 null表示所有信息 第三个参数为查询条件 通常是where xx 的形式 null表示没有查询条件即查询所有 第四个参数为第三个参数中 的值 是String数组 null表示没有 第五个参数是排序 Cursor videoCursor contentResolver query MediaStore Video Media EXTERNAL CONTENT URI null 鮒簡觸 癘鈄餒嬋锵户泼 null null MediaStore Video Media DEFAULT SORT ORDER 眯毆蠐謝银癩唠阁跷贗 while videoCursor moveToNext String title videoCursor getString videoCursor getColumnIndex MediaStore Video Media TITL E 闵屢螢馳鑷隽劍颂崗鳳 String type 合肥学院计算机科学与技术系毕业论文 32 videoCursor getString videoCursor getColumnIndex MediaStore Video Media MIME TYPE 檁傷葦开阈灯伞馑諧粮 long size videoCursor getLong videoCursor getColumnIndex MediaStore Video Media SIZE 鄭 饩腸绊頎鎦鹧鲕嘤錳 String path videoCursor getString videoCursor getColumnIndex MediaStore Video Media DAT A 弃铀縫迁馀氣鰷鸾觐廩 Map videoMap new HashMap 调谇續鹨 髏铖馒喪劉薮 videoMap put title title videoMap put type type videoMap put size size videoMap put path path if videoDataList isEmpty 第一次添加时videoDataList为空 videoDataList add videoMap pathList add path else 之前添加过 if pathList contains path 再次添加的文件不在列表中 pathList add path videoDataList add videoMap videoCursor close if pathList isEmpty 如果用户手动删除了SD卡上的文件则将该信息从列表中删除 厲耸紐楊鳝晋頇兗蓽驃 for int i 0 i pathList size i File file new File pathList get i if file exists pathList remove i videoDataList remove i return videoDataList 合肥学院计算机科学与技术系毕业论文 33 public static boolean addVideos String filepaths 苧瑷籮藶黃邏闩巹东澤 boolean exist true long size 0 String title null String path null String type null for int i 0 i filepaths length i File file new File filepaths i if file exists if pathList contains filepaths i size file length title file getName substring 0 file getName lastIndexOf 鴿摄禱鋅儀 憚銼嚕缗赞 path filepaths i type video path substring path lastIndexOf 1 toLowerCase 箪啬癲剀 净赶钩嬙鳄凫 Map videoMap new HashMap 顽鷙瑪滨廈岘轆庫糞糧 videoMap put title title videoMap put type type videoMap put size size videoMap put path path videoDataList add videoMap pathList add path exist false return exist public static String getAllPaths String paths null if pathList isEmpty paths new String pathList size for int i 0 i pathList size
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文山职业技术学院《社会保险学》2024-2025学年第一学期期末试卷
- 福建省南安市国光中学2025年数学高一第一学期期末联考试题含解析
- 湖南九嶷职业技术学院《仪器分析》2024-2025学年第一学期期末试卷
- 内科应急预案解读
- 青山不老p市公开课金奖市赛课教案
- 劳动最光荣班主题班会教案
- 遵义版春八年级物理压强复习课导新版沪科版教案
- 国际投资风险管理知识教案(2025-2026学年)
- 编写童话故事省公共课全国赛课教案
- 钻孔灌注桩施工规范试卷教案
- 2024版年度树立正确就业观课件
- 食材配送投标方案技术标
- 中医护理适宜技术工作计划
- 虚拟电厂负荷调控系统建设方案
- 临床医学导论期末测试习题与答案
- 商业伦理与企业责任课件
- 企业该如何正确如何选人
- 机器人输尿管重建手术治疗成人输尿管狭窄的现状
- 水景工程喷泉
- 我的家乡邢台内丘县宣传介绍
- DB15T+3176-2023北虫草栽培技术规程
评论
0/150
提交评论