android开发音乐盒的实验报告

合集下载

电子音乐盒的的实训报告

电子音乐盒的的实训报告

一、实训目的本次实训旨在通过实际操作,让学生掌握电子音乐盒的设计与制作流程,提高学生的电子技术、音乐处理和动手实践能力。

通过实训,使学生能够:1. 了解电子音乐盒的基本原理和组成;2. 掌握电子音乐盒的设计与制作方法;3. 熟悉相关电子元件的性能和应用;4. 培养学生的创新思维和团队协作能力。

二、实训环境实训地点:电子实验室实训设备:电子元件(如:单片机、扬声器、电阻、电容、按键等)、编程软件(如:Keil、C语言编程软件等)、音乐制作软件(如:Audacity等)。

三、实训原理电子音乐盒是一种将音乐信号转换为声波,通过扬声器播放的音乐设备。

其基本原理是利用单片机控制音乐芯片,将音乐数据转换为相应的电信号,通过扬声器播放出来。

1. 音乐芯片:存储音乐数据,如MIDI文件;2. 单片机:读取音乐芯片中的音乐数据,按照一定的时间间隔发送指令给扬声器;3. 扬声器:将电信号转换为声波,播放音乐。

四、实训过程1. 音乐制作:使用Audacity软件制作MIDI文件,并将其转换为适合单片机播放的音乐数据。

2. 元件选型:根据音乐盒的设计需求,选择合适的电子元件,如单片机、扬声器、电阻、电容、按键等。

3. 电路设计:根据元件性能和功能,设计电路图,包括单片机、音乐芯片、扬声器等部分。

4. 电路焊接:按照电路图,将元件焊接在电路板上。

5. 编程:使用Keil软件编写程序,实现音乐盒的功能。

6. 调试与测试:对音乐盒进行调试,确保其正常工作。

五、实训结果1. 设计并制作了一款具有基本功能的电子音乐盒;2. 掌握了电子音乐盒的设计与制作方法;3. 熟悉了相关电子元件的性能和应用;4. 培养了创新思维和团队协作能力。

六、实训总结1. 通过本次实训,我对电子音乐盒的基本原理和组成有了更深入的了解;2. 在设计过程中,我学会了如何根据需求选择合适的电子元件,并进行了电路设计;3. 编程过程中,我掌握了C语言编程,提高了编程能力;4. 在调试与测试过程中,我学会了如何解决实际问题,提高了问题解决能力;5. 本次实训使我认识到团队协作的重要性,培养了良好的团队精神。

安卓音乐播放器实验报告

安卓音乐播放器实验报告

竭诚为您提供优质文档/双击可除安卓音乐播放器实验报告篇一:音乐播放器实验报告面向对象程序设计课程设计设计说明书音乐播放器(mp3player)起止日期:20XX年5月27日至20XX年6月2日学班学成生姓名级号绩孙见任计算机科学与技术10110408100124指导教师(签字)计算机与通信学院20XX年6月2日目录一、课题的介绍和课题的任务二、设计的要求三、系统的分析和系统中功能的设计四、系统的实现及调试五、系统的使用说明六、总结七、程序主要源代码八、课程设计任务书一、课题的介绍和课题的任务音乐播放器是一种用于播放各种音乐文件的多媒体播放软件。

它涵盖了各种音乐格式的播放工具,比如:mp3播放器,wmA播放器,mp4播放器等。

它们不仅界面美观,而且操作简单,带你进入一个完美的音乐空间。

利用mFc应用程序、媒体控制接口mIc的基本知识,设计一个mp3播放器。

要求能够播放常用windows音频格式的文件;实现播放控制:播放、暂停、清空播放列表、音量增减、添加歌曲、上一曲,下一曲等功能;实现从本地磁盘加入文件,然后对其进行播放。

二、设计的要求系统模块功能图:流程图:二、系统的分析和系统中功能的设计该播放器分为八大功能模块;1、背景图片:音乐播放器的背景图片。

篇二:android手机音乐播放器实训报告final课程名:软件工程综合实践实践项目:基于Android的手机音乐播放器一、课程设计题目基于Android的手机音乐播放器二、课程设计内容(含技术指标)本程序是基于Android开源系统技术,利用Java语言和eclipse编辑工具对播放器进行编写。

程序功能如下:用户可以按照以下规则进行操作:1.音乐播放:界面对歌曲操作有播放、暂停、停止、音量控制、上一首/下一首播放模式:随机播放、顺序播放、单曲循环。

2.音乐管理:音乐列表、专辑:显示全部音乐文件,能直接选择播放歌曲。

艺术家:归类艺术家的音乐文件。

最近播放:记录用户最近播放的音乐文件,方便用户再次使用。

Android开发音乐播放器毕业论文

Android开发音乐播放器毕业论文

A n d r o i d开发音乐播放器毕业论文SANY GROUP system office room 【SANYUA16H-郑州大学毕业设计(论文)题目:基于Android平台的音乐播放器指导教师:李妍职称:讲师学生姓名:陈小雨学号:专业:计算机科学与技术(软件开发)院(系):软件学院完成时间: 2014年05月05日2014年05月05日目录摘要 (1)ABSTRACT (2)前言 (3)1 Android平台及开发工具介绍 (4)1.1Android平台简介 (4)1.1.1A ndroid平台架构 (4)1.1.2Android的四大组件 (6)1.2 Android的开发环境 (8)1.2.1 Eclipse (8)1.2.2A ndroid SDK (8)1.3本章小结 (9)2 需求分析 (10)2.1 播放器的设计目标 (10)2.2 软件的可行性研究 (10)2.2.1经济上的可行性 (10)2.2.2技术上的可行性 (11)2.2.3操作上的可行性 (11)2.3 播放器的功能需求分析 (11)2.3.1播放器的基本功能 (11)2.3.2歌曲列表的功能 (14)2.3.3菜单的设置功能 (16)2.4 本章小结 (18)3 总体设计.................................................3.1设计原则 (19)3.1.1总体设计路线 (19)3.1.2 系统功能结构图 (20)3.1.3系统流程图 (21)3.2 主要功能设计 (21)3.2.1歌曲列表模块 (21)3.2.2 音乐播放模块 (22)3.2.3 专辑列表模块 (23)3.2.4 菜单设置模块 (24)3.3系统的安全设计............................................................ .. (24)3.4 本章小结 (25)4 详细设计与实现 (26)4.1 欢迎界面............................................4.2 歌曲播放界面 (27)4.2.1 播放音轨SeekBar (28)4.2.2 播放调节功能 (28)4.3 歌词显示界面 (29)4.4 列表显示界面 (30)4.5 菜单设置 (31)4.6 本章总结 (33)5 音乐播放器的测试 (34)5.1 测试模型 (35)5.1.1 V模型 (35)5.1.2 W模型 (35)5.2 测试模型的选择 (37)5.3 测试方法 (37)5.3.1 白盒测试 (37)5.3.2 黑盒测试 (38)5.3.3 测试方法的选择 (38)5.4 功能的测试与实现 (38)4.2.1 播放器整体功能的实现 (39)4.2.2 播放器主要模块功能测试 (40)5.5 测试结论 (40)5.6 测试过程与总结 (40)5.7 本章小结 (41)结论 (42)致谢 (43)参考文献 (44)摘要Android平台是Google公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。

基于Android的音乐播放器的系统设计的研究报告

基于Android的音乐播放器的系统设计的研究报告

基于Android的音乐播放器的系统设计的研究报告本文基于Android平台开发了一款音乐播放器,主要实现了歌曲的播放、暂停、切换、调节音量等基本功能。

本文主要介绍了音乐播放器的系统设计,包括面向对象设计、软件体系结构设计及界面设计等。

一、面向对象设计面向对象设计是一种软件设计方法,通过将对象的属性和行为打包在一起,以便更好地管理和重复使用。

本系统的面向对象设计主要包括三个核心类: MediaPlayManager(媒体播放管理器)、 Music(音乐)和 PlayControl(播放控制器)。

MediaPlayManager类是整个系统的核心。

它负责管理音频播放相关的所有操作,如音频资源的获取、播放控制、进度更新、音量调节等。

同时,它还可以屏蔽底层的细节实现,以便更好地隔离系统的其他组成部分。

Music类是储存音频信息的基本单元,存储了音频文件的基本信息,如文件路径、歌曲名、歌手、专辑等信息。

Music类是可重用的,可以被图形用户界面和系统其他组件调用。

PlayControl类是包含系统中所有的用户交互控件,通过监听用户输入来触发音频播放的开始、暂停、停止、快进、快退等操作。

PlayControl类还包含了音量控制和进度条控制,以便更好地处理用户对音频的操作。

二、软件体系结构设计在软件体系结构设计方面,本系统采用面向服务的体系结构设计方法。

本系统包含了多个服务,分别负责从不同的数据源获取数据、音频处理、媒体播放、UI交互等工作。

这些服务各自独立地工作,通过接口来协调彼此之间的工作,以便实现整个系统的功能。

其中最重要的服务是MediaPlayService媒体播放服务,负责整个系统的媒体播放工作,包括MP3音频格式、网络音频、在线音频等媒体类型的播放工作。

另外,本系统还采用了MVVM架构模式,将业务逻辑和视图分开,使得业务逻辑可以单独测试,且可以更加方便的修改和升级。

MVVM模式可以有效地解耦,在注重变化和可维护性方面得到迅速的发展。

基于Android的音乐播放器毕业论文开题报告

基于Android的音乐播放器毕业论文开题报告
2.本课题的基本内容
1.系统学习Android应用软件开发的相关基础知识:用户界面编程、Android组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理;
2.掌握Android音频/视频多媒体应用开发、网络通信编程、Android平台的Web Service、传感器应用开发、GPS应用开发、Google Map服务等相关技术;
目前手机的音乐播放功能已经是大家比较关注的一个部分了,不少在人在购买手机的时候都会关心手机的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。和传统的音乐播放器相比,手机播放音乐更加的容易携带,其他方面也都不输于传统音乐播放器,而且还具有网上听音乐功能,所以开发一款受欢迎的手机音乐播放软件是具有良好的市场和应用前景的。不同手机平台的手机,所支持的音乐播放软件也是各不相同,而现在最流行的手机平台就是google的android手机平台,所以本课题就致力于开发出一款基于android手机平台的音乐播放器,来满足用户的使用需求。
2012年4月3日~~2012年5月1日:根据任务要求,完成应用软件的详细设计和程序实现,使用仿真环境,完成测试软件,发现并解决其中存在的问题;
2015年5月1日~~2015年5月20日:完成毕业设计的撰写,答辩。
毕业论文开题报告
指导教师意见:
本课题的任务是完成基于Android的面向智能(手机)终端的应用软件开发,需要系统学习和掌握Android应用软件开发的相关知识:用户界面编程、Android组件、Android资源访问、事件处理机制、Android输入/输出处理等内容,并在Eclipse环境下利用android sdk完成智能(手机)终端音乐播放器。课题的研究要求学生具备较为全面的计算机科学专业知识和较强的知识综合运用能力,此外,还需结合课题研究的要求,重点了解Android应用软件系统及其开发技术、事务处理、设计流程等相关知识。深入学习和较好掌握Eclipse、android sdk、Java等开发工具或技术。完成课题研究涉及的知识深度和广度要求较高,开发工作量适中。

安卓实验三,音乐播放器

安卓实验三,音乐播放器

广东工业大学实验报告信息工程学院电子信息工程专业 2 班成绩评定_______ 学号3110002831 姓名李硕教师签名_______预习情况操作情况考勤情况数据处理情况实验 3 题目本地MP3播放器第_13_周星期_二_第_6-7_节1、打开Eclipse,导入教材第5章例程ServiceDemo;2、在PlayBindMusic界面上分别添加一个ListView控件,用于显示本地SD卡MP3文件;public void musicFileList(){try{if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){sdCardDir = Environment.getExternalStorageDirectory(File home = sdCardDir;if (home.listFiles(new mp3Filter()).length > 0){mMusicFileList.clear(); //清空缓冲for (File file : home.listFiles(new mp3Filter())){mMusicFileList.add(file.getName());}}}}catch(Exception e){e.printStackTrace();}}class mp3Filter implements FilenameFilter{public boolean accept(File dir, String name){return (name.endsWith(".mp3"));}}要将歌曲导入虚拟机的sd卡添加一个进度条,用于显示播放进度;Layout.xml 中添加如下代码<ProgressBarandroid:id="@+id/progressBar1"style="?android:attr/progressBarStyleHorizontal"//要设置为水平进度条android:layout_width="250dp"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"/>Java里面实例化,链接playProgress = (ProgressBar)findViewById(R.id.progressBar1);// 为UI控件绑定事件监听器3、把路径、音乐文件列表作为Intent的Extra属性,再绑定BindMusicService对象;把当前选中要播放的音乐文件的索引号(在ListView中位置编号)作为参数传递给BindMusicService.java 的play(int item )方法;mMusicList=(Object[])intent.getExtras().getSerializable("mMusicList"); currentListItem=(int)intent.getExtras().getInt("currentListItem");mp3Path = intent.getExtras().getString("path");return binder;在主配置文件AndroidManifest.xml中允许SD卡读写权限:<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>改写PlayBindMusic中connection( )方法,使用意图Intent传递播放列表和路径:Intent serviceIntent = new Intent("com.android.ServiceDemo.bindService");serviceIntent.putExtra("mMusicList", mMusicFileList.toArray());serviceIntent.putExtra("currentListItem", currentListItem);serviceIntent.putExtra("path", sdCardDir.getPath());bindService(serviceIntent, sc, Context.BIND_AUTO_CREATE);4、修改BindMusicService.java的play( )方法,在play方法里创建mediaPlayer,并开始播放;if(mediaPlayer==null){Uri playUri = Uri.parse(mp3Path+"/"+mMusicList[item]);mediaPlayer = MediaPlayer.create(this, playUri);mediaPlayer.start();}if(currentListItem!=item && mediaPlayer != null){currentListItem = item; //更新编号mediaPlayer.release(); //释放旧对象Uri playUri =Uri.parse(mp3Path+"/"+mMusicList[currentListItem]);mediaPlayer = MediaPlayer.create(this, playUri);mediaPlayer.start();}if ((!mediaPlayer.isPlaying()) && mediaPlayer != null) {mediaPlayer.start();}5、添加进度条控制代码,显示播放进度;playProgress.setMax(musicService.GetDuration());playProgress.setProgress(musicService.GetCurrentPosition());。

Android实验报告

Android实验报告

Android实验报告一.实验目的1.掌握Android项目中界面显示的基本方法;2.了解Android手机硬件API的调用方法;3.了解Android系统的资源存储结构;4.在Android平台下音乐播放器的设计开发二.实验环境计算机安装AndroidSDK,Eclipse,Android模拟器三.实验过程1、建立Android工程2、在res -> layout -> main.xml中设置程序界面3、主界面musicActivity设计。

大致的流程是调用父类onCreat函数,隐藏标题栏,设置布局,寻找布局控件,初始化应用,刷新播放列表,绑定监听器,启动服务。

代码如下:关键代码讲解设置布局函数setView()中,先初始化ListView、GridView,完毕后再将其添加到viewPager中从而可以进行滑动切换显示。

代码如下:(图1)图1播放音乐的函数playMusic(String path)函数中的参数为歌曲的路径(包含歌曲的文件名和后缀),返回类型为空,它的作用就是播放该路径的歌曲并且有一个播放完毕的监听器。

所有的歌曲控制指令都写在musicActivity中,Service本身并不负责对歌曲列表的操作,所以,如果播放完毕,则给musicActivity一个切换歌曲的指令。

代码如下:(图2)图2实现歌曲播放的暂停,上一首,下一首,停止等功能。

代码如下:(图3,图4)图3图4四.实验总结通过这次Android播放器的设计,让我更加深一步的了解到Android这门课程的用处与意义。

通过这次程序设计是我自己的Android基础有了更加深入的了解,使自己的知识更加的牢固。

如今社会Android手机的发展可谓是蒸蒸日上,Android技术人员的稀缺,更加使我们这些学习Android技术的人看到的大好的未来。

促使我更加努力的学习Android技术。

五.分工musicActivity的编写以及数据库的建立,同时负责软件后期的调试和修改;Android实验报告班级:计应1301姓名:焦强学号:20139009。

android音乐播放器开题报告

android音乐播放器开题报告

android音乐播放器开题报告Android音乐播放器开题报告一、引言近年来,随着智能手机的普及和移动互联网的发展,人们对于音乐的需求也越来越高。

作为一种重要的娱乐方式,音乐播放器在移动设备上的应用变得越来越重要。

本文将探讨Android音乐播放器的开发,旨在提供一种功能齐全、操作简便的音乐播放器应用。

二、背景随着移动设备的普及,人们越来越倾向于使用智能手机来听音乐。

然而,市面上的音乐播放器应用存在一些问题,如功能不够全面、操作复杂等。

因此,开发一款功能强大、操作简便的Android音乐播放器应用具有重要意义。

三、目标本项目的目标是开发一款Android音乐播放器应用,具有以下特点:1. 功能齐全:能够支持多种音频格式的播放,包括MP3、WAV、FLAC等。

同时,还能够提供歌曲的分类浏览、歌词显示、播放列表管理等功能。

2. 操作简便:用户能够轻松地浏览歌曲、切换播放模式、调节音量等。

同时,还能够提供便捷的搜索功能,使用户能够快速找到自己想听的歌曲。

3. 用户体验优化:通过界面设计和交互方式的优化,提供良好的用户体验。

例如,可以提供自定义主题、背景音乐、睡眠定时等功能,满足用户的个性化需求。

四、开发计划本项目的开发计划如下:1. 需求分析:对用户需求进行深入调研和分析,明确开发目标和功能要求。

2. 技术选型:选择合适的开发语言和框架,如Java和Android Studio。

3. 界面设计:设计直观、美观的用户界面,提高用户体验。

4. 功能开发:根据需求分析,逐步实现各项功能,包括音频播放、歌曲分类、歌词显示等。

5. 测试与优化:对开发的功能进行测试,修复bug并进行性能优化,确保应用的稳定性和流畅性。

6. 发布与推广:将开发完成的应用发布到应用商店,并进行推广,吸引用户下载和使用。

五、预期成果通过本项目的开发,预期将实现以下成果:1. 一款功能齐全、操作简便的Android音乐播放器应用,满足用户对音乐播放的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《开发一个安卓软件报告》报告设计题目:用安卓开发单机音乐盒学院名称:电子与信息工程学院专业:计算机科学与技术班级:计科091姓名:*** 学号03指导教师:***定稿日期:2011年12月26日一、设计任务与要求1、设计目标:(1)了解Java编程的基础知识和数据库知识(2)掌握用android开发应用软件的的一般步骤和方法。

(3) 能够利用所学的基本知识,设计一个完整的音乐播放盒,还可以实现后台播放声音,并且在播放过程中可以通过前台的按钮控制声音的播放、暂停与关闭。

(4)在以上基础上再加一个界面,能够实现跳转,出现一个歌词界面。

2、课程设计的要求:1、用Service组件、BroadcastReceiver组件、Intent、菜单对话框来完成音乐的播放等操作。

2、提交设计报告一份(需求分析、设计的基本思路、设计的步骤及主要代码、心得体会)。

二、系统分析1、需求分析随着android手机的普及和一些小游戏的流行,android开发也日益high了。

现在,大家也都是用手机听音乐了,一个绚丽的、酷酷的音乐盒就可以成为我们炫耀的资本了。

为了符合更多人的喜欢,设计的界面要清晰、美观、大方、并且操作方便。

所以我设计的界面也一定要清晰、美观、大方、并且操作方便。

2、模块分析(1)在layout文件中增加一个歌词的界面songwords.xml并画好界面,还要在mail.xml中画好界面。

(2)在raw文件中放入歌曲。

<string name="myTextView1">我爱他</string><string name="myTextView2">叮当</string><string name="swords">歌词</string><string name="words">他的轻狂留在某一节车厢地下铁里的风比回忆还重···省部分歌词···若那一刻重来我不哭让他知道我可以很好</string>(3)在values文件中的string中添加所要用到的字符串。

(4)在src文件中的文件中的Sample_9_3.java中定义一些按钮和转换的方法,在MyService.java中实现了按钮,在songwords.java中实现了歌词那个界面的功能。

三、系统设置1、功能设计这个播放器可以实现播放,暂停,停止和歌词界面跳转功能。

在刚打开音乐盒的时候,是播放状态,按一下暂停按钮,音乐停止播放,且暂停按钮的图像变为播放按钮的图像;此时再按一下播放按钮,音乐继续;无论音乐在播放状态还是暂停状态,只要按一下停止按钮,音乐就会被关闭;当音乐在播放时,按歌词按钮,就会跳转到当前播放的歌的歌词界面,且音乐继续在播放;如果退出音乐盒这个界面,音乐也还是再继续的。

而且在还没有跳转的时候,按菜单栏就会出现退出前台的按钮了。

2、界面设计第一个界面总体分为上、下两层,第一层主要分三个部分,把播放按钮和暂停按钮重叠的放在第一部分,把停止按钮放在第二部分,第三部分又划分成上、下两个部分,上面放歌曲的名称,下面放歌曲的演唱者;第二层只有一个按钮,跳转到歌词界面的功能。

<?xml version="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutxmlns:android="/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"><ImageButtona ndroid:id="@+id/start"a ndroid:layout_width="wrap_content"a ndroid:layout_height="wrap_content"a ndroid:src="@drawable/png2"/><ImageButtona ndroid:id="@+id/stop"a ndroid:layout_width="wrap_content"a ndroid:layout_height="wrap_content"a ndroid:src="@drawable/png1"/><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewa ndroid:id="@+id/textView1"a ndroid:layout_width="wrap_content"a ndroid:layout_height="wrap_content"a ndroid:textSize="25px"a ndroid:textColor="#ffffff"a ndroid:ellipsize="marquee"a ndroid:layout_weight="1"a ndroid:marqueeRepeatLimit="marquee_forever"a ndroid:text="@string/myTextView1"/><TextViewa ndroid:id="@+id/textView2"a ndroid:textSize="15px"a ndroid:gravity="center_vertical"a ndroid:layout_weight="1"a ndroid:layout_width="wrap_content"a ndroid:layout_height="wrap_content"a ndroid:text="@string/myTextView2"/></LinearLayout></LinearLayout><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/swords"android:id="@+id/swords"></Button></LinearLayout>第二个界面也分为上、下两层,第一层就是用来放歌词的;第二层有一个返回按钮,可以返回到第一个界面。

<LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/words"android:textSize="15px"android:textColor="#FF00FF"android:id="@+id/words"></TextView><Buttonandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="返回"android:id="@+id/back"android:onClick="@string/swords"></Button>最终的效果是:四、个人总结这个音乐盒虽然比较简单,但是是我自己用这个学期所学到的知识来完成的,有我自己的心血,让自己觉得自己还不错。

在做实验的过程也遇到了问题,毕竟所学的知识不是很深,问了在暑假所过的同学很多问题,终于完成了。

在做音乐盒的过程中,先前想得很简单,只要它能播放、暂停、停止就可以了。

后来想想要是可以看到歌词就好了,所以才加的歌词那个界,还把字体设置成了自己喜欢的枚红色。

本来还想在歌词按钮的下面再加一个列表,来显示所有的歌曲名及其演唱者,但是自己的知识还是太少了,没能把它实现。

不过还是会再接再砺的。

五、附录:代码4、修改Music.java源代码:public class Music extends Activity implements OnClickListener{ ImageButton start;//播放、暂停按钮ImageButton stop;//停止按钮private Button swords;ActivityReceiver activityReceiver;int status = 1;//当前的状态,1没有声音播放 ,2 正在播放声音,3暂停/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {//重写的onCreate方法super.onCreate(savedInstanceState);setContentView(yout.main);//设置当前的用户界面start= (ImageButton) this.findViewById(R.id.start);//得到start的引用stop = (ImageButton) this.findViewById(R.id.stop);//得到stop按钮的引用swords = (Button) this.findViewById(R.id.swords);start.setOnClickListener(this);//为按钮添加监听stop.setOnClickListener(this);//为按钮添加监听swords.setOnClickListener(this); activityReceiver = new ActivityReceiver();//创建BroadcastReceiverIntentFilter filter = new IntentFilter();//创建IntentFilter过滤器 filter.addAction("wyf.ytl.update");//添加ActionregisterReceiver(activityReceiver, filter);//注册监听Intent intent = new Intent(this, MyService.class);//创建IntentstartService(intent);//启动后台Service}public class ActivityReceiver extends BroadcastReceiver{//自定义的BroadcastReceiver@Overridepublic void onReceive(Context context, Intent intent) {//重写的onReceive方法// TODO Auto-generated method stubint update = intent.getIntExtra("update", -1);//得到intent中的数据switch(update){//分支判断case 1://没有声音播放status = 1; //设置当前状态break;case 2://正在播放声音start.setImageResource(R.drawable.png3);//更换图片status = 2; //设置当前状态break;case 3://暂停中start.setImageResource(R.drawable.png2);//更换图片status = 3; //设置当前状态break;}}}@Overridepublic void onClick(View v) {//接口中的方法// TODO Auto-generated method stubIntent intent = new Intent("wyf.ytl.control");//创建Intentswitch(v.getId()){//分支判断case R.id.start://按下播放、暂停按钮intent.putExtra("ACTION", 1);//存放数据sendBroadcast(intent);//发送广播break;case R.id.stop://按下停止按钮intent.putExtra("ACTION", 2);//存放数据sendBroadcast(intent);//发送广播break;case R.id.swords:Intent intent2=new Intent();intent2.setClass(this, Songwords.class);startActivity(intent2);}}@Overrideprotected void onDestroy() {//释放时被调用// TODO Auto-generated method stubsuper.onDestroy();Intent intent = new Intent(this, MyService.class);//创建Intent stopService(intent);//停止后台的Service}@Overridepublic boolean onCreateOptionsMenu(Menu menu){//弹出菜单menu.add(0,Menu.FIRST,0,"退出").setIcon(R.drawable.ic_menu_delete);//设置图标return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item){//选择的菜单项switch(item.getItemId()){//分支判断case Menu.FIRST:showDialog(1);//显示对话框break;}//将来可在此进行扩展return false;}@Overrideprotected Dialog onCreateDialog(int id){//创建对话框switch(id){//判断case 1:return new AlertDialog.Builder(this).setTitle("您确定退出?").setPositiveButton("确定", newandroid.content.DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubSystem.exit(0);//直接退出}}).setNegativeButton("取消", null)//取消按钮.create();default:return null;}}}5、修改Myservice.java源代码:package wyf.ytl;public class MyService extends Service{MediaPlayer mp;ServiceReceiver serviceReceiver;int status = 1;//当前的状态,1没有声音播放 ,2 正在播放声音,3暂停@Overridepublic IBinder onBind(Intent intent) {//重写的onBind方法// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {//重写的onCreate方法,会在Service创建时被调用// TODO Auto-generated method stubstatus = 1;serviceReceiver = new ServiceReceiver();//创建BroadcastReceiverIntentFilter filter = new IntentFilter();//创建过滤器filter.addAction("wyf.ytl.control");//添加ActionregisterReceiver(serviceReceiver, filter);//注册BroadcastReceiversuper.onCreate();}@Overridepublic void onDestroy() {//重写的onDestroy方法// TODO Auto-generated method stubunregisterReceiver(serviceReceiver);//取消注册super.onDestroy();}public class ServiceReceiver extends BroadcastReceiver{//自定义BroadcastReceiver@Overridepublic void onReceive(Context context, Intent intent) {//重写的响应方法// TODO Auto-generated method stubint action = intent.getIntExtra("ACTION", -1);//得带需要的数据switch(action){case 1://播放或暂停声音if(status == 1){//当前没有声音播放mp = MediaPlayer.create(context, R.raw.nx);status = 2;Intent sendIntent = new Intent("wyf.ytl.update");sendIntent.putExtra("update", 2);sendBroadcast(sendIntent);mp.start();}else if(status == 2){//正在播放声音mp.pause(); //停止status = 3;//改变状态Intent sendIntent = new Intent("wyf.ytl.update");sendIntent.putExtra("update", 3);//存放数据sendBroadcast(sendIntent);//发送广播}else if(status == 3){//暂停中mp.start();//播放声音status = 2;//改变状态Intent sendIntent = new Intent("wyf.ytl.update");sendIntent.putExtra("update", 2);//存放数据sendBroadcast(sendIntent);//发送广播}break;case 2://停止声音if(status == 2 || status == 3){//播放中或暂停中mp.stop();//停止播放status = 1;//改变状态Intent sendIntent = new Intent("wyf.ytl.update");sendIntent.putExtra("update", 1);//存放数据sendBroadcast(sendIntent);//发送广播}}}}}6、增加Songwords.java的源代码:public class Songwords extends Activity implements OnClickListener{ private TextView view_words;private Button back;private void findViews(){back = (Button) findViewById(R.id.back);v iew_words = (TextView) findViewById(R.id.words);}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(yout.songwords);findViews();showSongwords();Intent intent =getIntent();}private void showSongwords(){Bundle receive = this.getIntent().getExtras();view_words.setText(R.string.words);back.setOnClickListener(this);}@Overridepublic void onClick(View v) {Intent intent=new Intent();intent.setClass(this, Sample_9_3.class);startActivity(intent);}}。

相关文档
最新文档