收藏 分销(赏)

基于Android音乐播放器详细设计doc.doc

上传人:二*** 文档编号:4539768 上传时间:2024-09-27 格式:DOC 页数:85 大小:3.61MB 下载积分:5 金币
下载 相关 举报
基于Android音乐播放器详细设计doc.doc_第1页
第1页 / 共85页
本文档共85页,全文阅读请下载到手机保存,查看更方便
资源描述
基于Android音乐播放器详细设计【实用文档】doc 文档可直接使用可编辑,欢迎下载 项 目 详 细 设 计 3组:梁锦 21209010417 王燕 21209010414 李雪飞 21209010415 卫妙珠 21209010419 雷宁 21209010418  曹项飞 21209010416 目录 1音乐播放器设计18 1。1项目介绍18 1.1。1播放器的基本控制需求18 1.1.2项目流程19 1.1。3UI界面设计20 1.1.4项目程序结构21 1。1。5项目Manifest.xml文件22 1。2创建项目及具体结构分析25 1.2.1项目的创建25 1.2。2界面设置25 1.2.3结构分析26 1。3 设计成果及分析26 1。3.1 设计成果27 1。3。2问题及分析29 1。1项目介绍 本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对设计过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、等功能于一体,性能良好,在Android系统中能独立运行.本设计简单实用,没有过于花哨的功能与界面,简单的功能不仅仅操作方便,还为系统资源节省空间。 在Android系统下开发一款多媒体播放器,并学习多媒体技术,熟悉软件开发流程。Android多媒体框架播放机制,包括:OpenCore,PacketVideo(PV).UI设计与制作,包括动态界面布局,浮动控制栏,自定义对话框等.媒体文件播放与控制,包括音视频文件的播放,后台播放媒体文件等。媒体文件的信息管理,包括媒体文件信息的扫描,存取与获取,数据库操作等。播放信息和用户配置参数的保存与加载。在Android模拟器/真机上实现对媒体文件的播放。 1.1.1播放器的基本控制需求 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用如下图4—1来描述,系统的功能需求。 (图4-1) 从以上图4—1中我们可以一目了然地看出本项目的控制需求,其中主要包括了播放、暂停、音量调节、新增、上一首,下一首等功能。 1。1.2项目流程 下图4-2是项目设计的流程图,是本项目设计的重要关键点之一,此流程图展示了整个项目的逻辑与算法。是本项目的核心技术之一。 (图4-2) 不难看出,本项目使用到了3个主要用户界面,分别是播放主界面,播放列表界面以及播放界面.通过图4-2,我们可以清晰的,一目了然的读懂整个设计的思路以及各个功能的定位。从而,此流程图更加方便读者了解该项目的功能实现,设计思路,层次结构以及各个程序之间的关系等。 1.1.3UI界面设计 Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转[20] Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)。[21] 五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。 Android的线程,以及线程之间通信的中介:Handler类 Android数据库:在第三章已经介绍过了.这里不再介绍 Android配置文件:AndroidManifest.Xml及res资源文件中各种属性 布局方式 引用的资源等. Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定,目前最大支持800X600的分辨率。 1.1.4项目程序结构 Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(。xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转.如图4。3,写明了Android资源的类型和布局 (图 4。3)    下图4.4—4。7为音乐播放器代码结构和各界面的配置文件,图像资源等,图4。4 为一个Android工程所必须的结构,图4.5为该播放器的.Java文件,图4.6为播放器所用到的字符串,字体大小,字的颜色等配置文件,图4.7为该播放器的图片资源。 (图 4。4)             (图 4.5)     (图 4.6)(图 4.7) 1.1.5项目Manifest.xml文件 Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了AndroidSDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest。xml中寻找标识来作出相应的操作.任何一个AndroidManifest。Xml文件的格式都应为: <?xmlversion=”1.0"encoding=”utf—8"?〉 〈manifest > 〈application 〉 ﻩﻩ<activity 〉 ﻩ〈intent-filter> ﻩﻩ <action/><category/> 〈intent—filter> ﻩ〈activity 〉 <application 〉 ﻩ<user-sdk /><user-permission /〉 〈/manifest〉 Android系统有一个编码的规定,支持的编码是”utf-8",当程序中出现乱码是,我们须将其编码格式转化为"utf-8”.在 AndroidManifest。xml中会在第一行声明一句:<?xmlversion=”1.0" encoding=”utf-8”?〉。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=”http://schemas.android。com/apk/res/android” xmlns(XMLnamespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。 如下程序,在application元素我们定义android:icon="@drawable/icon" android:label="@string/app_name",android:icon是程序在手机中显示的图片,我们运用@drawable/icon表示了对res/drawable目录下的icon.png的引用。@string/app_name表示了对res/value目录下string。Xml中定义的app_name参数的引用。 <application android:icon=”@drawable/music" android:label="@string/app_name" >     <activity android:label=”@string/app_name" android:name=”.MainActivity” 〉   〈intent-filter 〉           <actionandroid:name="android.intent。action.MAIN” />       〈categoryandroid:name=”android.intent.category。LAUNCHER” />     <actionandroid:name="android.intent.action.CREATE_SHORTCUT"〉〈/action〉    <actionandroid:name=”cn.com.karl.music。MainActivity"></action〉        </intent—filter〉     </activity〉 这是系统确定的首先要启动的Activity是PlayRackActivity. 在intent—filter选项中,有action和category等等属性,我们需要定义action的值为android.intent。action.MAIN,category的值为android。intent.category。LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest。Xml的application 中寻找标识,任何一个Activity的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了。 在AndroidManifest。Xml中有一个根结点〈uses-sdk>,它是我们需要定义的ADT版本,例如我们将其值设定为android:minSdkVersion="8",则表示此Android工程所用的版本为1.6,Android还有1。1、1.5、1.6、2.0、2.1这几个版本。 如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限uses—permission,将其的值设置为android:name="android.permission.INTERNET,我们就可以访问网络了。当然uses—permission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com.android.browser。permission。READ_HISTORY_BOOKMARKS等等。 当程序的任何一个组件要用到时,都必须在AndroidManifest。Xml文件中声明.四大组件要使用前都需要声明,其声明方式如下: <service></service> 〈provider></provider> 〈activity></activity> 〈receiver></receiver> 其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性.过滤器intent-filter 有两种启动方式来启动界面: (1) 显示方式 显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件. (2)隐式方式 隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。 1.2创建项目及具体结构分析 本节着重分析项目结构中每一个功能的功能设计与创建方法。包括了项目的创建,界面的设计以及对项目结构的分析. 1。2.1项目的创建 可以使用Eclipse插件创建一个简单的Android程序。 在创建新项目时需要注意输入以下信息: Projectname(项目名称): chengchengMusicPlayer BuildTarget(需要的版本): Android1.5 Applicationname(应用名称): MusicPlayer1 Packagename(包名): cn。com.karl.music CreateActivity(Java项目名称): MusicPlayer 在实际程序中,我们可以定义自己的名称。其中软件包名称尤为重要。系统中的每个应用程序都必须具有唯一的软件包名.因为在很多地方都会用到软件包名,所以一旦设定好软件包名就不要随意修改它。 1.2。2界面设置 配置文件setting.Xml布局结构如下: <?xmlversion="1.0" encoding="utf-8”?> ﻩ<LinearLayout> <RadioGroup> ﻩﻩ 〈RadioButton 〉</RadioButton> ﻩﻩ<RadioButton ></RadioButton> <RadioButton >〈/RadioButton> ﻩ〈/RadioGroup〉 </LinearLayout> 〈ToggleButton/〉 <AbsoluteLayout> <ImageButton/> ﻩ 〈ImageButton/> ﻩ</AbsoluteLayout> 最外层的LinearLayout里面嵌套多层LineaLayout,子LinearLayout里面嵌套着单选按钮RatioGroup 和开关按钮ToggleButton。RatioGroup 里面嵌套着3个RatioButton,即界面上显示的(单曲循环、随机播放、顺序播放)。 播放模式用的是一个组件RadioGroup,这个组件有单项选择的功能,里面有RadioButton项,多个RadioButton项只能同时选中一个,该 播放器播放模式有单曲循环,随机播放,顺序播放等功能。MediaPlayer有一个监听器,它监听着歌曲是否正在播放或者是否播放完成,当歌曲播放完成时,会触发方法OnCompletionListener(),在该方法里面可以处理歌曲播放完成后的操作。RadioGroup可以进行单项选择操作。 通过RadioButton。isChecked(),如果返回true,刚该项被选中。 1.2.3 结构分析 (1)播放器的。Java文件 .Java文件是本项目的主要功能实现程序。在cn.com.karl.music程序包中的以下文件: AlbumsActivity。java, ArtistActivity.java, ItemActivity.java, MainActivity.java, MusicActivity.java, MusicService.java, SongActivity.java 其中,AlbumsActivity。java文件主要描述并定义了专辑的视图界面以及功能作用。ArtistActivity。java文件主要描述并定义了艺术家的视图界面以及功能作用。ItemActivity。java文件主要描述并定义了歌曲项目的视图界面以及功能作用。MainActivity.java定义并实现了记忆上一次运行该项目的动作,在下一次打开运行后继续该操作。MusicActivity.java文件主要描述并定义了音乐播放器主界面的视图界面以及功能作用。MusicService.java是音乐播放器在后台运行的程序.SongActivity。java文件主要描述并定义了最近播放歌曲的记忆功能。 (2)播放器的图片资源 播放器的图片资源主要在res文件夹中。当然也可以通过更换res中的图片来更换音乐播放器各个UI界面的背景或其他按钮图片。 对于不同的界面,比如播放界面,歌曲列表界面,艺术家界面或者最近播放界面,都快可以设置不同的背景图片,这就使整个播放器在色调方面不显得那么单一了。 1.3设计成果及分析 在经过多次的程序调试及模拟器和真机测试后,本音乐播放器的设计成果及界面效果图会在本节中做概要介绍。 1.3。1 设计成果 (1)音乐播放界面如下图5.1所示: (图5.1) (2)歌曲列表界面如下图5.2所示 (图5。2) (3)艺术家界面如下图5。3所示 (图5。3) 上述便是在经过多次的程序调试及模拟器和真机测试后,本音乐播放器的设计成果及界面效果图. 1.3.2问题及分析 (1)模拟器占用内存问题 在一开始对程序进行调试的时候,偶尔会遇到计算机提示:系统C盘空间不足之类的信息,这是由于Android模拟器每次运行时都会临时生成几个。tmp临时文件。一段时间后,其可能占用几GB的磁盘空间。所以,需要手工定期清理一下,清理目录为C:\DocumentsandSetting\Administrator\LocalSetting\Temp\AndroidEmulator 文件夹下的内容。在遇见此内存问题时,清理此目录临时文件后,模拟器便能正常运行了。 (2)程序问题 在调试程序过程中,总是遇见Activity与Manifest之间通信有故障的相关问题,后经与老师同学讨论后,发现是AndroidManifest。xml文件中,漏了将MusicActivity定义入Manifest程序中。 〈/activity> 〈activityandroid:name=”.ArtistActivity">〈/activity> 〈activityandroid:name="。SongsActivity"〉</activity〉 <activityandroid:name=”。ItemActivity”></activity〉 〈activityandroid:name="。AlbumsActivity"></activity> <activityandroid:name=”。MusicActivity”〉</activity〉 <serviceandroid:name="。MusicService"></service> 〈/application> (3)歌曲名称及SD文件夹不能显示的问题 ﻩ在运行程序后,有时歌曲名称,专辑,表演者等信息会出现乱码,预测估计是模拟器自带的字符串有错误。但由于时间问题,此问题到现在还未解决。 另外,有时在运行程序的时候,会显示SD卡未能读取的错误,但时而又会正常工作,推测可能是模拟器稳定性问题。 以上这两点问题都需要在之后慢慢的去琢磨推敲原因。 6 结论 (1) 通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成,只要掌握了这六部分的开发,音乐播放器就能初具规模。而其它的功能都是在这六个功能的基础上去补充添加的,但是这是功能的确是必不可少的功能,否则就不能算是音乐播放器了。 (2) 音乐播放器系统实现了播放器的基本功能:播放,暂停、停止、上/下一首、音量调节、文件浏览器、播放列表查询等功能.运用的系统平台是现今最热门的Android系统,是一个开源的基于Linux系统的手机平台。是以Java语言编写+SQLite数据库支持+SharePreference配置文件的组合方式进行数据管理.实现了音乐播放器的系统编程。 (3) 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclipse1.5+Java语言的支持,AndroidDevelopmentTool的插件,和AndroidSDK2.2版本的全面结合,才使整个音乐播放器系统得以实现。 (4) 总之,经过几个月的Android系统技术知识的学习和对音乐播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,这对我以后的Android项目开发有很大的帮助。 谢辞 值此论文完成之际,衷心感谢我的导师金一鸣老师,在毕业设计的过程中给予我悉心的指导和帮助,他对待学识的严谨态度和作风让我感触颇深。感谢陈雯老师,作为我班的辅导员,在大学生活期间,给予同学们的帮助和教导。感谢2008届电子科学与技术的全体同学,和我一起度过了难忘的四年时光.感谢我的爸爸妈妈,将我培养成人,教育我,帮助我。最后,对审批此论文的老师表示深深地谢意。 参考文献 [1] 雍俊海编著。Java程序设计习题集[M].北京:清华大学出版社,2006 [2]JasminBlanchette,MarkSummerfield. C++ GUIProgrammingwithJava.[M]Publisher:PrenticeHallPTR,January152004。 15~25 [3] 朱福喜编著.Java语言习题与解析[M].北京:清华大学出版社,2006 [4] 赵文靖编著。Java程序设计基础与上机指导[M].北京:清华大学出版社,2006 [5] 吴其庆编著。Java程序设计实例教程[M].北京:冶金工业出版社,2006 [6]王克宏著.Java技术教程(基础篇)[M].北京:高等教育出版社,2002。04 [7] JavaEye论坛.http://www.javaeye.com/forums. 2010—04—15. [8]TrolltechInc。Android ReferenceDocumentation3.3。2. http://qt.nokia。com/title-cn. 2004年 [9]耿祥义,Java大学实用教程[M],北京:电子工业出版社,2005.3 [10] 杨丰盛主编.Android 应用开发揭秘[M].西安:机械工业出版社,2010-01—25 [11] eoe。Android开发社区.http://www。eoeandroid。com/. 2010—04-10. [12] 高焕堂编.Android 应用框架原理与程式设计(第三版)[M].北京:清华大学出版社,2008-10—03 [13]shaneCondor, LaurenDecry. Android移动应用开发从入门到精通[M].北京:人民邮电出版社,2010 [14]G.N.Wassef. Lipoprotein (a) inandroidobesityandNIDDM: anewmemberin‘themetabolicsyndrome'[M]. Biomedecine & Pharmacotherapy, Volume53, Issue10,December1999,Page462-465. [15]FedericoPerfetto, RobertoTarquini, GermaineComealissen, GiorgioMello, AlessioTempestini, PaolaGaudiano, FrancescoMancuso, FranzHalberg. Circadianphasedifferenceofleptininandroidversusgynoidobesity[M]。 Peptides, Volume25, Issue8, Auguest2004, Page1297—1306. [16]NesrineAttia, NatalieFournier, BenoitVedie, MicheleCambillau, PhilippeBeaune, OlivierZiegler, AlainGrynbery, Jean-LouisPaul, BrunoGuerci[M]。ImpactofAndroidoverweightorobesityandinsulinresistanceonbasalandpostprandialSR-BIandABCA1-mediatedserumcholesteroleffluxcapacities. Atherosclerosis, Volume209, Issue1, January1st,2008. Pages95—103. [17]AlessandroDistefano, GianluigiMe, FrancesscoPace. Androidanti-forensicsthroughalocalparadigm[M]。 DigitalInvestigation, Volume7, Supplement1, August2010, PagesS83—S94 [18] 余志龙编著.GoogleAndroidSDK开发范例大全[M].北京:人民邮电出版社,2009-7-1. [19] 张孝祥著. java就业培训教程[M].北京:清华大学出版社,2007. [20] Ming-ChiaoChen, Jiann-LiangChen,Teng-Wen. Android/OSGi—basedvehicularnetworkmanagementsystem[M]。 ComputerCommunications, Volume334, Issue2, February15th2011, Pages169-183 [21]RetoMeier。 Android高级编程[M].北京:清华大学出版社,2010。 《C/C++课程设计》项目报告 目  录 1 项目简介1 1.1项目名称1 1。2功能概述1 1.3 开发人员及职责。。....。。。...。.。..。。.。.。....。。.。..。。.。.。。.。。。。.....。..。....。。。.。.。。。.。。。......。.。..。。.。。.....。..。...。.。..1 2  需求分析..。.。。...。。.。.。.。....。....。....。。.。.。.。。..。...。。。。。....。....。。...。.。。。。..。。....。......。..。。.......。..。...。.......。...。..。..。.。.1 2.1  功能需求。....。.。..。。。。。...。。。。..。..。....。....。。.。。..。..。..。.。。。..。.。.。。.。.。..。....。......。....。..。......。。..。...。。。..。...。。.1 2.2 性能需求......。.。....。...。...。.。...。.。。。。。。。.。..。.。。..........。。..。......。.。。.。....。...。....。..。...。..。。。....。.。。。。。。..。....2 3  系统设计。....。....。。。..。..。....。...。..。.。。.。。。.。.....。。.....。....。。..。...。..。。.。..。..。.。.。..。...。.。....。..。。。...。。..。。.。..。..。。。.。。.。..3 3.1 代码设计...。..。。.。...。..。.......。.。..。。..。。。..。。。。。。...。..。......。.....。....。.。.。....。....。.....。..。..。..。.。...。...。........3 3.2 流程图。.。.........。.。....。。。..。。。......。..。。.。。。.......。。.。..........。....。..。......。....。。。.。。.。。..。。..。..。。.。...。..。.。。。。.13 4  系统实现及测试.。.。。.。.。。.。。...。。。........。.。..........。。..。.。。。。.。。...。..。...。.。。。..。。。....。.。....。...。....。。.。.。....。.。。..。。。.17 5 项目总结........。。。。...。。..。。。.。....。。.......。。...。.。。.。..。.。..。.。...............。..。。.....。.。..........。.。....。。.。。。。..。.....。..。..。20 5.1  总体总结。。。。。。。...。。..。.。。..。。。..。........。。.。........。..。...。...。。。.....。。。...。。.。。.。。。...。.。。...。。...。。..。......。..。..。.20 5。2 个人总结.。。...。。。..。。。..。.。。...。.。。.。.....。..。..。.....。.。.。。。..。....。..。..。。。.。。.。.......。。。.。...。...。。。.。...。。..........。21 1  项目简介 1.1  项目名称 多媒体播放器 1.2 功能概述 此款媒体播放器项目具有以下功能: (1)本地设定目录中包含音频文件的浏览和播放(支持mp3格式)。 (2)本地设定目录中包含图片文件的浏览(支持bmp格式). (3)本地设定目录中包含视频文件的浏览和播放(支持mp4格式)。 (4)最近播放列表功能,保存最近播放的10个文件,保存最近追加的10个文件。视频,音频,图片是分开的,都有最近播放列表和最近追加列表。 1。3  开发人员及职责 负责视频模块,以及最后的模块整合,报告的编写 负责音频模块,报告的编写 负责图片模块,报告的编写 2 需求分析 2.1. 功能需求 本设计将要实现的是一个单机多媒体播放器,可以对音频、视频、图片进行查看。从其目标功能及特点分析,将本软件功能划分如下: (1) 视频播放器:    可以打开MP4格式的视频文件。 在本地文件夹中将MP4格式的视频文件添加至播放列表,点击播放,或双击列表里的所选项目,就可跳转至视频播放窗口。  在播放窗口里,查看视频时,有“播放",“暂停”,“停止”功能。 播放中,还有“前进”,“后退”功能,即快进快退功能,以4秒为一个单位,这个单位也可以在代码中进行修改。 在观看视频时,还有“上一曲,下一曲”功能,即查看之前添加在播放列表里的视频项。同时,也可以选择播放模式“循环,顺序,随机",该功能也是基于播放列表实现的。 在右边功能键里,还有音量调节,静音功能。除此以外ﻩ,还可以进行全屏浏览,按“ESC”退出全屏。 在主页面,还有两个数据框“最近追加项目”和“最近播放项目”,可以直观地看到最近播放项目,且可以手动清空所有项目。这两个列表只按照时间,保存最近的项目,且最多保存10个。 (2) 音频播放器 可以打开MP3格式的音频. 在本地文件夹中将MP3格式的视频文件添加至播放列表,点击播放,或双击列表里的所选项目,就可跳转至音频播放窗口。并且,在主窗口,还有两个数据框“最近追加项目”和“最近播放项目”,可以直观地看到最近播放项目,且可以手动清空所有项目。这两个列表只按照时间,保存最近的项目,且最多保存10个. (此处为该多媒体公共窗口,功能相同,下面的图片浏览器也是一样的.) 在播放窗口里,听取音频时,有“播放",“暂停”,“停止”功能。 同样也会有“前进,后退”功能,“上一曲,下一曲”功能,播放模式中的“循环,顺序,随机”,这些功能与上面所述的视频播放器相同。 (3) 图片浏览器  可以打开BMP格式的图片。 主窗口同视频、音频播放器一样,在此不多赘述. 在浏览图片窗口中,会有“上一张,下一张”功能键,可以在“播放列表,最近播放项目,最近追加项目”任何一个列表中循环,可以自由选择。当图片浏览到所选列表的最后一张时,会自动循环至列表第一张。 (4)在主窗口的中,在列表中已添加文件后,有两种方式可以打开文件.一是选中想要打开的文件,点击“播放文件”按钮,二是直接双击列表中的文件,便可进入到相应子窗口进行查看。 (5)当单独拿出exe文件运行时,会自动在exe所在文件里创建9个文本文档,分别存放三个模块(视频,音频,图片)的三个列表(播放列表,最近播放项目,最近追加项目)信息. 2。2. 性能需求   (1)硬件平台要求 由于本软件为单机软件,不需进行大量的数据读写和数据交换,故对系统硬件配置的要求并不高,只要能够平稳运行Windows操作系统的硬件平台,都能够使用本软件。 (2)软件开发环境 1。 OS:Microsoft Windows XP SP2 2. Complier:Visual C++ 6.0 , Visual Studio 2005 Team System或更高版本 3。 ﻩMSDN Library 3 系统设计 3。1。代码设计 (1)音频、视频模块 1。创建播放器对话框 右击Dialog,点击插入,在弹出的对话框中点击Dialog,再点击新建。  双击新建的得对话框的ID,弹出新建的对话框,删除里面所有的控件。 右击,建立类向导,此时弹出Adding a class对话框,点击ok,输入name为player, 点击确定后退出。   再在对话框中右击,选择插入ActiveX控件,选择Windows Media Player,之后在对话框中可以看到一个视频控件。右击,选择属性,在控制中将选择模式改为None,在视频控件中也就看不到一开就有的按键了。再次右击视频控件,选择建立类向导.点击Member Variables,选择视频控件的ID(默认为ID_OCX1), 点击Add Variables。此时会弹出一个对话框。   点击确定后,弹出Comfirm Class对话框后,点击OK。此时可以看到建立了很多个类。之后为添加成员变量。Name为m_play ,Category为Control,Variable Type为CWMPPlayer4.点击确定之后可以看到下面的效果. 2.控件与函数 声明全局变量CString playname,用于记录播放地址;int ntype用于记录播放的类型;int num1,num2,num1用于记录播放的地址在播放列表中的位置,num2用于记录播放列表中总的播放地址.构建成员函数void player::Onplay(CString pname,int n,int m,int t) {playname=pname; num1=n;num2=m;ntype=t;} 将前台所选择播放的信息通过函数传递给播放器对话框中 在对话框中放上以下几个控件。 控件 ID 标题 控件 ID 标题 Push Butt
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服