基于Android普通的音乐播放器的设计与实训-软件技术毕业论文_第1页
基于Android普通的音乐播放器的设计与实训-软件技术毕业论文_第2页
基于Android普通的音乐播放器的设计与实训-软件技术毕业论文_第3页
基于Android普通的音乐播放器的设计与实训-软件技术毕业论文_第4页
基于Android普通的音乐播放器的设计与实训-软件技术毕业论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 编号 xxxxxx 信息职业技术学院信息职业技术学院 毕毕业业论论文文 题 目 基于 Android 普通的音乐播 放器的设计与实训 学生姓名xx 学 号xxx 院 系 计算机与通信工程学院 专 业软件技术 班 级xx 指导教师xx 顾问教师 二一六年六月 摘 要 I 摘摘 要要 本音乐播放器的开发的原因是,在当今大众娱乐的时代,音乐播放器已是 越来越不可少,开发这个项目可以方便很多人。Android 当前发展前景很不错, 特别是在中国市场,中国智能手机用户花钱购买应用程序的意识淡薄,安卓主 打免费和开放式系统,适合广大人群,安全系数一般,虽然没有 IOS 那样稳定 易用,但开发前景仍然可观

2、。 随着社会的进步发展,人们生活水平的稳健提高,越来越多的人们开始对 娱乐生活有着各种各样的需求,其中,音乐以其独特的律动和韵味捕获了大多 数人们的心。在这样的时代中,音乐播放器的使用也显得格外的讲究。 本音乐播放器为满足广大用户对音乐体验的快感,结合了主流播放器的基 本功能,并大胆创新,只为给广大用户带来极致的音乐享受。 本音乐播放器基本实现了现如今主流音乐播放器的基本功能,基本符合大 众对音乐播放器的需求。除此以外,本播放器还提供了下载功能以及波形图, 左右声道等新鲜功能。满足各类用户的需求,带来前所未有的体验感。 关键词关键词 1.android 2.音乐播放器 3.下载功能 Abstr

3、act II A Abstractbstract The reason for the development of the music player is that in the era of mass entertainment, music player is becoming more and more indispensable, the development of this project can be convenient for many people. Android is currently the development prospects are very good,

4、 especially in the Chinese market, Chinese smartphone users spend money to buy application consciousness, Android main free and open system, suitable for the majority of the population, the factor of safety in general, although there is no IOS as stable and easy to use, but the prospects are still i

5、mpressive. With the social progress and development, peoples living standards improve the robustness of the, more and more people began to have a variety of demand for live entertainment, including music, with its unique rhythm and charm capture the heart of most people. In such an era, the use of m

6、usic players also appears to be particularly stress. The music player to meet the majority of users of the music experience of pleasure, combined with the basic features of the mainstream player, and bold innovation, only for the majority of users to bring the ultimate music to enjoy. The basic real

7、ization of the music player is now the mainstream music players basic functions, basically in line with the needs of the public music player. In addition, the player also provides download features as well as the waveform, the left and right channels, and other new features. Meet the needs of all ki

8、nds of users, bring an unprecedented sense of experience. Keywords:1.android 2. music player 3.Download function 目 录 III 目目 录录 摘摘 要要.I ABSTRACT .II 第第一章一章 绪论绪论.1 1.功能设计.1 1.1.1 主界面音乐播放管理.1 1.1.2 通知栏音乐播放管理.1 1.1.3 音乐列表管理.1 1.1.4 设置管理.1 1.1.5 双声道管理.1 2. 本论文的内容和结构说明.1 第二章第二章 系统设计系统设计.3 2.1 系统面向对象设计.3 2

9、.2 数据库设计.3 2.3 主界面设计.4 第三章第三章 系统实现系统实现.5 3.1 数据库存储系统的实现.5 3.2 系统功能实现.5 3.2.1 音乐信息添加功能的实现.5 3.2.2 音乐列表更改功能的实现.6 3.2.3 服务器音乐下载功能的实现.7 3.2.4 设置功能的实现.9 3.2.5“关于”实现.12 3.2.6 通知栏音乐播放控制功能的实现.13 3.2.7 双声道和波形功能的实现.14 第四章第四章 软件系统测试软件系统测试.17 4.1 测试目的.17 4.2 测试对象及测试范围.17 第五章第五章 总结与展望总结与展望.18 致致 谢谢.19 参考文献参考文献.2

10、0 附录附录 项目类表项目类表.21 第一张 绪论 1 第第 1 1 章章 绪论绪论 1.功能设计功能设计 1.1.1 主界面音乐播放管理主界面音乐播放管理 通过该模块,用户可以实现对音乐播放的管理,主要功能包括: a.播放/暂停:用户可以通过此功能对音乐实施播放或暂停控制。 b. 上一首:用户可以通过此功能切换音乐至上一首。 c.下一首:用户可以通过此功能切换音乐至下一首。 d. 播放模式:用户可以通过此功能调节播放模式,包括顺序播放、循环播 放和随机播放。 e.进度条拖动:用户可以通过此功能调节音乐的播放进度。 1.1.2 通知栏音乐播放管理通知栏音乐播放管理 a.播放/暂停:用户可以通过

11、此功能对音乐实施播放或暂停控制。 b. 上一首:用户可以通过此功能切换音乐至上一首。 c.下一首:用户可以通过此功能切换音乐至下一首。 d. 关闭:用户可以通过此功能直接关闭播放器。 e.跳转:用户可以通过此功能从通知栏跳转至主界面。 1.1.3 音乐列表管理音乐列表管理 a.默认列表:用户打开列表自动搜索内存里的音乐,并导入默认列表。用 户可通过此列表进行选择播放。 b. 喜欢列表:用户通过在默认列表中的选择,将喜欢的音乐导入喜欢列表。 用户可通过此列表进行选择播放。 c.下载列表:用户可通过网络下载喜欢的音乐至此列表,并进行选择播放。 1.1.4 设置管理设置管理 a.背景设置:用户可通过

12、此功能更换界面背景。 b. 搞怪 3D 音效:用户可通过此功能获取搞怪音效。 c.语言设置:用户可通过此功能来进行中英文切换。 1.1.5 双声道管理双声道管理 a.用户如果没有插入耳机,则出现波形图。 b. 用户如果插入耳机,则进行双声道管理。 淮安信息职业技术学院毕业设计论文 2 2.本论文的内容和结构说明本论文的内容和结构说明 软件设计采用 IAR C 语言软件开发系统,通过系统通讯主程序、路由子程 序、传感器信号采集处理子程序、显示报警子程序等模块化软件设计,设计出 使用简便、运行效率高、稳定可靠的配套软件系统。 本文结构主要由绪论、音乐播放器的构成与组建、系统模块的介绍,流程 图和关

13、键代码实现。 第 1 章:绪论,介绍音乐播放器的功能设计。 第 2 章:系统设计,系统总体分析与设计,总体介绍项目的构成。 第 3 章:系统实现的原理。 第 4 章:系统测试。 第 5 章:对项目的以后的展望和。 第二张 系统设计 3 系统顶层用例图如图 1: 用户 主界面音乐播放管理 双声道管理 设置管理 音乐列表管理 通知栏音乐播放管理 播放 / 暂停 下一首 关闭 进度条拖动 喜欢列表 3D 音效 双声道 播放 / 暂停 语言设置 上一首 默认列表 播放模式 下载列表 背景设置 上一首 下一首 波形图 跳转 图 1 系统用例图 淮安信息职业技术学院毕业设计论文 4 第二章第二章 系统设计

14、系统设计 2.1 系统面向对象设计系统面向对象设计 根据系统的需求分析,各功能模块所涉及的类如下: 音乐列表类: 功能:修改音乐类型信息,比如添加音乐数据、查询所有未被删除的音乐信 息、添加删除喜欢音乐。 属性:存储音乐类型信息,比如默认音乐类型有歌曲 ID、名称、专辑名、 歌手名、路径、播放时长、大小、重命名歌曲名等。 音乐列表类图如图 2.1 +getters() +setters() -id : int -title : string -album : string -artist : string -Url : string -Dration : int -Size : int -st

15、atus : int MusicList 图 2.1 音乐列表类图 2.2 数据库设计数据库设计 系统采用 SQLite 关系型数据库进行数据库设计,由系统对象关系分析可知, 系统数据存储结构可由一张数据表构成,其具体结构如表 1 所示。 表 1 音乐类型信息表 表名account_type_info 列名数据类型非空描述主键外键 idintegerY歌曲 IDY titletext歌曲的名称 albumtext歌曲的专辑名 artisttext歌曲的歌手名 urltext歌曲文件的路径 durationtext歌曲的总播放时长 musicnametext重命名歌曲名 sizetext歌曲文件

16、的大小 statusinteger1 标识不喜欢,2 标识喜欢 第二张 系统设计 5 2.3 主界面设计主界面设计 由于采用移动手持终端作为应用程序载体,为提高人机交互效果,主界面 宜采用扁平化设计。可以更加简单直接的将信息和事物的工作方式展示出来, 减少认知障碍的产生。主界面设计如图 3.4 所示。 图 2.3 主界面设计 淮安信息职业技术学院毕业设计论文 6 第三章第三章 系统实现系统实现 3.1 数据库存储系统的实现数据库存储系统的实现 本存储系统利用 Andorid 的 SQLite 关系型数据库存储系统实现。其数据表 字段及数据表创建等核心代码如下所示: 数据表字段代码: priva

17、te SQLiteDatabase mMusicListdb = null; private final String LIST_DBNAME = music_list; private final String TBL_MUSIC = tbl_music; private final String TITLE = tilte; private final String ALBUM = album; private final String ARTIST = artist; private final String URL = url; private final String DURATIO

18、N = duration; private final String SIZE = size; private final String MUSICNAME = musicname; private final String STATUS = status; 3.2 系统功能实现系统功能实现 本音乐播放系统通过播放、音效、设置、关于、通知等其他系统共同实现。 主界面以下功能:播放、列表、设置、关于。 1.播放:音乐的播放控制; 2.列表:音乐列表显示和更改; 3.设置:更改背景、语言设置和 3D 音效; 4.双声道和波形; 5.关于; 6.通知栏音乐播放管理。 3.2.1 音乐信息添加功能的实

19、现音乐信息添加功能的实现 该功能主要是音乐信息的添加,点击主界面的列表按钮,打开音乐默认列表自 动添音乐(如图 3.1 所示)。弹出等待提示框(如图 3.2 所示),音乐添加完成 后将自动关闭并刷新列表。 图 3.1 音乐信息添加 第三章 系统实现 7 图 3.2 等待提示框 添加音乐数据访问层(MusicListDao 类)核心代码: public void initData(SdcardMusic sm) ContentValues cv = new ContentValues(); cv.put(TITLE, sm.getTilte(); cv.put(ALBUM, sm.getAlbu

20、m(); cv.put(ARTIST, sm.getArtist(); cv.put(URL, sm.getUrl(); cv.put(DURATION, sm.getDuration(); cv.put(SIZE, sm.getSize(); cv.put(MUSICNAME, sm.getMusicname(); cv.put(STATUS, 1); mMusicListdb.insert(TBL_MUSIC, novalue, cv); mMusicListdb.close(); 添加音乐信息事件核心代码: if(new MusicListDao(view.getContext().fi

21、ndAllMusic().isEmpty() if(new MusicListDao(view.getContext().findAllMusic().isEmpty() showLoadDialog(false); new Thread() public void run() Vector als = new Vector(); als = CommonUtils.getMusicFromSdCard(view.getContext(); for(int i=0;i 30000) new MusicListDao(view.getContext().initData(als.elementA

22、t(i); hand.sendEmptyMessage(0); ; .start(); else Toast.makeText(view.getContext(), R.string.application_no_music, Toast.LENGTH_SHORT).show(); 3.2.2 音乐列表更改功能的实现音乐列表更改功能的实现 该功能主要是负责音乐列表的查询和修改,点击默认列表界面的钻石图标,可 将该音乐添加至我喜欢的音乐列表(如图 3.3 所示),选择右侧黄色标签可查看 不同列表(如图 3.4 所示)。 淮安信息职业技术学院毕业设计论文 8 图 3.3 添加至喜欢的音乐列表 图

23、3.4 查看不同的音乐列表 查询音乐信息数据访问层(MusicListDao 类)核心代码 public Vector findAllMusic() Vector vsm = new Vector(); Cursor c = mMusicListdb.rawQuery(select * from +TBL_MUSIC + where + STATUS + ?, new String0); c.moveToFirst(); while(!c.isAfterLast() SdcardMusic sm = new SdcardMusic(); sm.setId(c.getInt(0); sm.set

24、Tilte(c.getString(1); sm.setAlbum(c.getString(2); sm.setArtist(c.getString(3); sm.setUrl(c.getString(4); sm.setDuration(c.getInt(5); sm.setSize(c.getInt(6); sm.setMusicname(c.getString(6); sm.setStatus(c.getInt(8); vsm.addElement(sm); c.moveToNext(); return vsm; 3.2.3 服务器音乐下载功能的实现服务器音乐下载功能的实现 点击列表内的

25、下载按钮可从服务器下载该音乐至本地(如图 3.5 所示)。等 第三章 系统实现 9 待下载完成后即可播放(如图 3.6 所示)。 图 3.5 下载音乐至本地 图 3.6 下载完成 客户端连接接收代码 public static String IP = 192.168.191.2; public static int PORT = 5000; public static String music_title = Your Smile.mp3; public boolean connect() new Thread() public void run() try while (true) Sock

26、et socket = new Socket(IP , PORT); String local_file = Environment.getExternalStorageDirectory().getAbsolutePath() + /AdownloadMusic/; File f = new File(local_file); if (!f.exists() f.mkdirs(); local_file = f.getAbsolutePath() + / + music_title; File file = new File(local_file); InputStream ins = so

27、cket.getInputStream(); FileOutputStream fos = new FileOutputStream(file); BufferedInputStream bis = new BufferedInputStream(ins); BufferedOutputStream bos = new BufferedOutputStream(fos); byte buffer = new byte102400; int len = bis.read(buffer); while (len != -1) bos.write(buffer, 0, len); len = bis

28、.read(buffer); fos.flush(); fos.close(); 淮安信息职业技术学院毕业设计论文 10 FileReader fr = new FileReader(file); String str = ; int val = ins.read(buffer); val = fr.read(); while (val != -1) str += (char) val; val = fr.read(); CommonData.downloading = 0; CommonData.handler_deletemusic.sendEmptyMessage(2); catch (

29、Exception e) CommonData.downloading = 0; CommonData.handler_deletemusic.sendEmptyMessage(3); ; .start(); return false; 服务端创建服务传输代码 public static void main(String args) File file = new File(Your Smile.mp3); try ServerSocket socketServerSocket = new ServerSocket(5000,1,InetAddress.getByName(172.17.0.8

30、2); while(true) Socket socket = socketServerSocket.accept(); try OutputStream ops = socket.getOutputStream(); BufferedOutputStream bos = new BufferedOutputStream(ops); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file); byte buffer = new byte102400; int len = bis.read(buffer

31、); while(len != -1) bos.write(buffer,0,len); len = bis.read(buffer); bos.flush(); bos.close(); ops.flush(); ops.close(); System.out.println(ok!); Thread.sleep(1000); catch (Exception e) e.printStackTrace(); catch (Exception e) e.printStackTrace(); 3.2.4 设置功能的实现设置功能的实现 点击主界面的设置按钮即可调出设置菜单(如图 3.7);点击背景

32、设置按钮 弹出背景选择界面长按即可设置成功(如图 3.8); 图 3.7 设置菜单查看 第三章 系统实现 11 图 3.8 背景设置成功 背景设置关键代码 public class ImageAdapter extends BaseAdapter private int mGalleryItemBackground; private Context context; public ImageAdapter(Context context) this.context = context; TypedArray typedArray = context.obtainStyledAttributes

33、(R.styleable.Gallery); mGalleryItemBackground = typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0); typedArray.recycle(); Override public int getCount() return myImageIds.size(); Override public Object getItem(int position) return position; Override public long getItemId(

34、int position) return position; public View getView(int position, View convertView, ViewGroup parent) ImageView i = new ImageView(context); i.setImageResource(myImageIds.elementAt(position%myImageIds.size(); i.setId(myImageIds.elementAt(position%myImageIds.size(); i.setScaleType(ImageView.ScaleType.F

35、IT_XY); i.setLayoutParams(new Gallery.LayoutParams(800, 450); i.setBackgroundResource(mGalleryItemBackground); return i; 点击语言设置按钮可选择语言(如图 3.9);点击搞怪 3D 音效可开启 3D 音 模式(如图 3.10)。 图 3.9 语言设置 淮安信息职业技术学院毕业设计论文 12 图 3.10 3D 音模式 语言设置功能关键代码 btn_lan_set.setOnClickListener(new OnClickListener() Override public

36、void onClick(View v) Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS); startActivity(intent); ); 3D 音效模式关键代码 private Timer mtm = null; private TimerTask mttk = null; private void SetSimulationSound(boolean aa) try final Random rd = new Random(); mp.setVolume(0.5F,0.5F); if(aa) mtm = new T

37、imer(); mttk = new TimerTask() float v = 0.5f; public void run() if(mp.isPlaying() float a = rd.nextFloat(); if(a 0.5) v = upleftSound(v); else v = uprightSound(v); ; mtm.schedule(mttk, 0, 3000); else mtm.cancel(); mttk.cancel(); mp.setVolume(1.0F,1.0F); catch (Exception e) private float upleftSound

38、(float left) try float right = 1-left; for(int i=0; i150; i+) if(left 0.91) left+=0.01f; right = 1-left; mp.setVolume(left, right); Log.e(sss, left=+left); Thread.sleep(20); return left; catch (InterruptedException e) Log.e(sss, volume left change is error, e); 第三章 系统实现 13 return 0.5f; private float

39、 uprightSound(float left) try float right = 1-left; for(int i=0; i 0.09) left-=0.01f; right = 1-left; mp.setVolume(left, right); Log.e(sss, left=+left); Thread.sleep(20); return left; catch (InterruptedException e) Log.e(sss, volume right change is error, e); return 0.5f; 3.2.5“关于关于”实现实现 该功能主要是声明“AC

40、G BOX”的版权,点击主界面的关于按钮,打开关于窗 口(如图 3.11 所示),显示关于“ACG BOX”。 图 3.11 关于“ACG BOX” Diolog 打开动画关键代码 Override public void onActivityCreated(Bundle savedInstanceState) super.onActivityCreated(savedInstanceState); getDialog().getWindow().getAttributes().windowAnimations = R.style.dialogAbout; getDialog().setCan

41、celedOnTouchOutside(true); 打开,关闭调用的 XML 文件 淮安信息职业技术学院毕业设计论文 14 使用的 Style 方法 anim/anim_showabout anim/anim_closeabout 3.2.6 通知栏音乐播放控制功能的实现通知栏音乐播放控制功能的实现 打开通知栏点击即可跳转到当前软件主界面,4 个按钮分别对应上一首、暂 停/播放、下一首和关闭的功能(如图 3.12)。 图 3.12 通知栏音乐播放控制 实现通知栏音乐播放控制关键代码 private NotificationManager showCustomView() RemoteView

42、s remoteViews = new RemoteViews(getPackageName(),R.layout.new_music_notification); remoteViews.setTextViewText(R.id.title_title, CommonData.all_music.elementAt(PlayMusic.itemId).getTilte(); remoteViews.setTextViewText(R.id.txt_duration, MyTimeUtils.Ms2mmss(CommonData.all_music.elementAt(PlayMusic.it

43、emId).getDuration(); remoteViews.setTextViewText(R.id.txt_artist, CommonData.all_music.elementAt(PlayMusic.itemId).getArtist(); Intent reActivity=new Intent(this,MainActivity.class); PendingIntent pIntent=PendingIntent.getActivity(this, 0, reActivity, 0); remoteViews.setOnClickPendingIntent(R.id.ll_

44、parent, pIntent); Intent preintent = new Intent(); preintent.putExtra(action, last); preintent.setAction(org.wy.playerReceiver); PendingIntent prepi = PendingIntent.getBroadcast(this, 0, preintent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.last_music, prepi); if(Co

45、mmonData.playstatus.flag_play = CommonData.playstatus.PLAY) Intent pauaseOrStartIntent=new Intent(); 第三章 系统实现 15 pauaseOrStartIntent.putExtra(action, pause); pauaseOrStartIntent.setAction(org.wy.playerReceiver); PendingIntent pausepi = PendingIntent.getBroadcast(this, 1, pauaseOrStartIntent, Pending

46、Intent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.paly_pause_music, pausepi); remoteViews.setImageViewResource(R.id.paly_pause_music, R.drawable.btn_tostart); else Intent pauaseOrStartIntent=new Intent(); pauaseOrStartIntent.putExtra(action, playing); pauaseOrStartIntent.setActio

47、n(org.wy.playerReceiver); PendingIntent pausepi = PendingIntent.getBroadcast(this, 2, pauaseOrStartIntent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.paly_pause_music, pausepi); remoteViews.setImageViewResource(R.id.paly_pause_music, R.drawable.btn_topause); Intent

48、nextIntent=new Intent(); nextIntent.putExtra(action, next); nextIntent.setAction(org.wy.playerReceiver); PendingIntent nextpi=PendingIntent.getBroadcast(this, 3, nextIntent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.next_music, nextpi); Intent closeIntent=new Inten

49、t(); closeIntent.putExtra(action, close_noti); closeIntent.setAction(org.wy.playerReceiver); PendingIntent closepi=PendingIntent.getBroadcast(this, 4, closeIntent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.close, closepi); Builder builder = new Builder(MainService.

50、this); builder.setContent(remoteViews).setSmallIcon(R.drawable.icon).setOngoing(true) .setTicker(music is playing); Notification notification=builder.build(); NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(1, notification); return mana

51、ger; 3.2.7 双声道和波形功能的实现双声道和波形功能的实现 点击左上角即可调出波形界面(如图 3.13);插上耳机后点击左上角弹出双 声道界面(如图 3.14)。 图 3.13 通波形界面 淮安信息职业技术学院毕业设计论文 16 图 3.14 双声道界面 波形显示关键代码 Override protected void onDraw(Canvas canvas) super.onDraw(canvas); if (mBytes = null) return; if (mPoints = null | mPoints.length mBytes.length * 4) mPoints =

52、 new floatmBytes.length * 4; mRect.set(0, 0, getWidth(), getHeight(); for (int i = 0; i 0) if(mp.equals(mp_left) if(!source_left.equals(vsm.get(left_play).getUrl() try mp.reset(); mp.setDataSource(vsm.get(left_play).getUrl(); if (!mp.isPlaying() mp.prepare(); 第三章 系统实现 17 catch (Exception e) Log.e(ss

53、s, onStart mp_left - is error, e); source_left = vsm.get(left_play).getUrl(); else if(!source_right.equals(vsm.get(right_play).getUrl() try mp.reset(); mp.setDataSource(vsm.get(right_play).getUrl(); if (!mp.isPlaying() mp.prepare(); catch (Exception e) Log.e(sss, onStart mp_right - is error, e); sou

54、rce_right = vsm.get(right_play).getUrl(); else Toast.makeText(this, R.string.no_music, Toast.LENGTH_LONG).show(); 淮安信息职业技术学院毕业设计论文 18 第四章第四章 软件系统测试软件系统测试 4.1 测试目的测试目的 对基于 Android 应用开发系统的学习,对系统的各项功能进行检测,查看是 否完成了设计文档中应有的模块并且检查模块的运行情况,检查出软件中还存 在的问题予以修正,使系统最终能予以交付。 4.2 测试对象及测试范围测试对象及测试范围 表 1 测试范围 测试项测试项

55、测试内容测试内容 系统初始化本地数据库及服务是否能正常初始化 主界面播放功能主界面是否能正常显示及控制音乐的播放 通知栏播放功能通知栏界面是否能正常显示及控制音乐的播放 列表添加各列表是否能正常显示及添加至列表中 下载功能是否能连接服务端及下载相关音乐 背景设置是否能切换背景 语言设置各功能之间切换及数据传递是否正常 波形图是否随音乐正常显示波形 双声道是否正常显示界面及双声道音乐效果 表 2 测试对象 测试对象:ACG BOX 实施人员:xx 报告撰写人员:xx 执行用例数:17 问题发现总数:5 解决问题总数:5 表 3 测试环境 客户端软件:Eclipse、Android SDK、ADT

56、 客户端设备:华为 p6 网络环境:局域网(wifi) 表 4 测试列表 测试方式:灰盒测试 测试内容 1:默认列表的添加 测试用例 1:打开列表,自动搜索,看是否添加成功 测试内容 2:喜欢列表的添加 测试用例 2:在默认列表内标记喜欢的音乐,看是否添加至喜欢列表 测试内容 3:列表动画的显示 测试用例 3:在列表内选择音乐播放,看被选音乐右上方是否有动画 第五章 结余与展望 19 第五章第五章 总结与展望总结与展望 本次项目以 Android 为平台,实现了音乐播放器的功能。在这次毕业设计 中我学会了有目的的去学习一些将要用到的东西,仔细地考虑工作流程的规律 和步骤,充分利用手中的开发工具,利用其所具备的功能,尽量使自己的开发 在代码上实现少而精确、让用户能够尽量简单地进行操作。但是在检测过程中, 还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。 在这次程序开发设计中,我也难免会遇到不少困难,这主要是由于我对所 用的开发环境并不是很熟悉,开发软件的经验不足。这次开发对我来说可以算 是一个全新的尝试,整个开发过程并不是很顺利,却使我从中充分体会到学习 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论