基于android的MP3音乐播放器任务书

合集下载

Android应用开发--MP3简单音乐播放器

Android应用开发--MP3简单音乐播放器

Android应用开发--MP3简单音乐播放器点击列表会进入播放的Activity,在这个Activity会接收到从前面的Activity传来的数据,在通过这些数据来启动服务来播放音乐,整个过程很简单,需要注意的是我们要接收的数据是哪些内容,还有我们向Service要传什么样的数据,这是根据自己的开发思路和需求来决定的,等一下你们会看到小鬼到底往Service传了些什么东西,然而这些数据到底起什么作用,需要慢慢去体会,因为这是需要一点一点去调试的。

好了,下面贴一下整个Activity的实现代码,主要是播放的各种状态的实现,因为这个音乐播放器并没有完全开发完,所以朋友们需要弄清楚这一点。

如果对代码的实现有不清楚的,可以给小鬼留言,小鬼有空一定给大家解答。

效果如下:代码如下:package com.anjovo.as.chapter10.exam01;import java.io.IOException;import android.media.AudioManager;import android.media.MediaPlayer;import .Uri;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.ContextMenu;import android.view.ContextMenu.ContextMenuInfo; import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MusicPlayerActivity extends Activity {protected static final int REQUEST_CODE = 1;private Button btnPlay,btnPause,baStop,back;private ImageView image;private TextView text;private MediaPlayer player;int position = 0;//声明一个变量判断是否为播放,默认为falseprivate boolean isPaused = false,Media=false;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.activity_music_player);btnPlay = (Button) findViewById(R.id.bt_play);btnPause = (Button) findViewById(R.id.bt_pause);baStop = (Button) findViewById(R.id.bt_stop);back = (Button) findViewById(R.id.bt_back);image = (ImageView)findViewById(R.drawable.ic_launcher);text = (TextView) findViewById(R.id.text);image = (ImageView) findViewById(R.drawable.fengcun);registerForContextMenu(baStop);//注册,让这个bastop将会启用上下文菜单text.setText("歌词下载错误!");final Intent serintent = newIntent(this,newActivity.class);btnPause.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubstartActivityForResult(serintent,REQUEST_CODE);}});back.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubfinish();if(Media==true){player.stop();player.release();}}});}public void BlooeanMedia(){if(Media==true){player.release();}}public void Player(MediaPlayer player){ try {if(player!=null){player.stop();}player.prepare();player.start();isPaused = true;Media=true;Toast.makeText(this, "音乐播放中...", Toast.LENGTH_LONG).show();} catch (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}@Overridepublic boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stubswitch(item.getItemId()){case 1:/** 用户点击了Id为“1”的子项,在这里编写处理代码*/BlooeanMedia();player = MediaPlayer.create(this,R.raw.wintersecret);MediaPlayer(player);Player(player);text.setText("周传雄-冬天的秘密...");break;case 2:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/BlooeanMedia();player = MediaPlayer.create(this, R.raw.after);MediaPlayer(player);Player(player);text.setText("庄心研-以后的以后...");break;case 3:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/BlooeanMedia();player = MediaPlayer.create(this, R.raw.baby);MediaPlayer(player);Player(player);text.setText("张悬-宝贝...");break;case 4:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/BlooeanMedia();player = MediaPlayer.create(this, R.raw.lovegirl);MediaPlayer(player);Player(player);text.setText("张赫宣-你是我心爱的姑娘...");break;case 5:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 5被选择",Toast.LENGTH_LONG).show();break;case 6:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 6被选择",Toast.LENGTH_LONG).show();break;case 7:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 7被选择",Toast.LENGTH_LONG).show();break;case 8:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 8被选择",Toast.LENGTH_LONG).show();break;case 9:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 9被选择",Toast.LENGTH_LONG).show();break;case 10:/** 用户点击了Id为“2”的子项,在这里编写处理代码*/Toast.makeText(this, "Item 10被选择",Toast.LENGTH_LONG).show();break;}return super.onOptionsItemSelected(item);}private void MediaPlayer(final MediaPlayer player) { // TODO Auto-generated method stub//增加播放音乐按钮的事件btnPlay.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubtry {if(player!=null){if(isPaused==false){player.start();isPaused=true;Toast.makeText(getApplicationContext(), "音乐播放中...", Toast.LENGTH_LONG).show();}else if(isPaused==true){player.pause();//暂停isPaused=false;Toast.makeText(getApplicationContext(), "音乐暂停中...", Toast.LENGTH_LONG).show();}}player.prepare();//同步地准备播放或回放player.start();//开始播放} catch (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});//播放完毕player.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {@Overridepublic void onCompletion(MediaPlayer arg0) {// TODO Auto-generated method stubtry{//释放dtmimi.mp3这个资源,让它可被其它播放器使用player.release();//释放MediaPlayerToast.makeText(getApplicationContext(), "音乐播放结束!", Toast.LENGTH_LONG).show();text.setText("");}catch(Exception e){Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();e.printStackTrace();}}});//播放出错的处理player.setOnErrorListener(newMediaPlayer.OnErrorListener() {@Overridepublic boolean onError(MediaPlayer arg0, int arg1, int arg2) {// TODO Auto-generated method stubtry{//发生错误时也释放资源player.release();Toast.makeText(getApplicationContext(), "播放发生异常!", Toast.LENGTH_LONG).show();}catch(Exception e){Toast.makeText(getApplicationContext(),e.toString(), Toast.LENGTH_LONG).show();e.printStackTrace();}return false;}});}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {// TODO Auto-generated method stubsuper.onCreateContextMenu(menu, v, menuInfo);menu.add(Menu.NONE, 1, Menu.NONE, "周传雄-冬天的秘密");menu.add(Menu.NONE, 2, Menu.NONE, "庄心研-以后的以后");menu.add(Menu.NONE, 3, Menu.NONE, "张悬-宝贝");menu.add(Menu.NONE, 4, Menu.NONE, "张赫宣-你是我心爱的姑娘");menu.add(Menu.NONE, 5, Menu.NONE, R.string.menu_item5);//将Item6设置为子菜单SubMenu subMenu = menu.addSubMenu(Menu.NONE, 6, Menu.NONE, R.string.menu_item6);subMenu.setHeaderIcon(R.drawable.ic_launcher);subMenu.setIcon(R.drawable.ic_launcher);subMenu.setHeaderTitle("子菜单");subMenu.add(Menu.NONE, 7, Menu.NONE,R.string.menu_item7);subMenu.add(Menu.NONE, 8, Menu.NONE,R.string.menu_item8);subMenu.add(Menu.NONE, 9, Menu.NONE,R.string.menu_item9);subMenu.add(Menu.NONE, 10, Menu.NONE,R.string.menu_item10);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);if(requestCode==REQUEST_CODE&&resultCode==RESULT_OK){ if(data!=null){//通过data参数处理返回信息String info = data.getData().toString();Uri myUri = Uri.parse(info);//将传回来的路径放在myUri中BlooeanMedia();player = new MediaPlayer();MediaPlayer(player);player.setAudioStreamType(AudioManager.STREAM_MUSIC);try {player.setDataSource(getApplicationContext(),myUri);//按地址播放player.prepare();player.start();isPaused = true;Media=true;Toast.makeText(this, "音乐播放中...", Toast.LENGTH_LONG).show();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalStateException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else{Toast.makeText(this, "无返回信息",Toast.LENGTH_SHORT).show();}}}}package com.anjovo.as.chapter10.exam01;import java.io.File;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import .Uri;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.Toast;/*** 使用一个包含String的List作为ListView的数据源,由于要在匿名内部类的方法中* 使用它,故将其定义为类的属性*/public class newActivity extends Activity{private List<String> dataList;private List<String> datauri;private String m_path;@Overrideprotected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(yout.array_adapter_acyivity);ListView list = (ListView) findViewById(R.id.list);dataList = new ArrayList<String>();datauri = new ArrayList<String>();m_path = new String("mnt/sdcard/");search(m_path, ".mp3", dataList,datauri);//定义一个ArrayAdapter,将数据源——dataList中的内容添加到这个ArrayAdapter//中,第二个参数指每一项将使用的界面布局final ArrayAdapter<String> adapter = newArrayAdapter<String>(this, yout.array_adapter_item, dataList);list.setAdapter(adapter);//将ArrayAdapter填充到ListView//处理用户单击选择的事件list.setOnItemClickListener(newAdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {// TODO Auto-generated method stubIntent intent = new Intent();String url = datauri.get(position);intent.setData(Uri.parse(url));setResult(RESULT_OK, intent);finish();}});//处理用户长按事件list.setOnItemLongClickListener(newAdapterView.OnItemLongClickListener() {@Overridepublic boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(),dataList.get(posit ion)+"删除成功!", Toast.LENGTH_LONG).show();//用户长按一项时,删除这一项内容dataList.remove(position);//通知Adapter的观察者数据源改变了,界面内容也得发生改变adapter.notifyDataSetChanged();return true; //返回true表示长按}});}}布局文件如下:<RelativeLayoutxmlns:android="/apk/res/and roid"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margi n"android:paddingLeft="@dimen/activity_horizontal_margi n"android:paddingRight="@dimen/activity_horizontal_marg in"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MusicPlayerActivity"><Buttonandroid:id="@+id/bt_pause"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentLeft="true"android:layout_marginBottom="14dp"android:text="列表"/><Buttonandroid:id="@+id/bt_play"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/bt_pause"android:layout_alignBottom="@+id/bt_pause"android:layout_centerHorizontal="true"android:text="播放"/><Buttonandroid:id="@+id/bt_back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/bt_stop"android:layout_alignParentTop="true"android:text="返回"/><Buttonandroid:id="@+id/bt_stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/bt_play"android:layout_alignBottom="@+id/bt_play"android:layout_toRightOf="@+id/image"android:text="选择"/><ImageViewandroid:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/text"android:layout_marginBottom="16dp"android:layout_toRightOf="@+id/bt_pause"android:src="@drawable/fengcun"/><TextViewandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/bt_play"android:layout_centerHorizontal="true"android:layout_marginBottom="48dp"android:text="."/> </RelativeLayout>。

基于Android平台的音乐播放器设计文档

基于Android平台的音乐播放器设计文档

基于Android平台的音乐播放器设计文档(张纪华,农学院,021*******;查李想,农学院,021*******)第一章开发目的现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3等多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。

本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。

使人们的生活更加多样化。

也使设计者更加熟练Android的技术和其它在市场上的特点。

第二章系统需求分析2.1 功能需求(用例图分析)根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。

以下分别描述:2.1.1 播放器的基本控制需求图2.1 播放器基本控制图2.1.2 播放清单列表管理需求当用户选中列表中某一项歌曲,就有的需求:图2.2 播放器清单图2.3 播放器设定图2.4 文件浏览器2.1.5 功能需求(时序图)分析2.2 系统结构图和流程图(1)音乐播放器的系统流程图(图2.5.1)图2.5.1 流程图(2)系统功能表(表2.1)和系统功能结构图(图2.5.2)表2.1 功能表图2.5.2 系统功能结构图2.3 系统界面需求播放器界面要求布局合理,颜色舒适,控制按钮友好(图2.6)图2.6 播放器界面说明:左下角为清单按钮右下角为程序退出按钮蓝色条为音轨2.4 系统性能需求根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:(1)当要求歌曲播放时,程序响应时间最长不能超过5秒(2)当要求歌曲暂停时,程序响应时间最长不能超过5秒(3)当要求歌曲停止时,程序响应时间最长不能超过5秒(4)当要求歌曲上/下一首时,程序响应时间最长不能超过5秒(5)当要求进行清单列表时,程序响应时间最长不能超过5秒2.5 运行环境需求操作系统:基于Android操作系统支持环境:Android 2.3.1—Android 4.2.5版本开发环境:Eclipse 3.5 ADT 0.95第三章 Android数据库设计3.1 数据库及字段属性设计3.1.1 字段设计(表、图)file_table 主要是保存歌曲名字、类型、路径字段说明:Id 歌曲id号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表3.1、图3.1.1)Android自带一个MediaStore封闭类专门来存储媒体信息通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息。

基于Android系统的音乐播放器设计与实现

基于Android系统的音乐播放器设计与实现
基于Android系统的音乐播 放器设计与实现
01 一、需求分析
目录
02 二、设计思路
03 三、实现步骤
04 四、注意事项
05 参考内容
内容摘要
随着移动设备的普及和Android操作系统的不断发展,基于Android系统的应 用程序开发也越来越受到。其中,音乐播放器作为手机用户的常用应用之一,其 设计和实现具有重要意义。本次演示将介绍一种基于Android系统的音乐播放器 设计和实现的方法。
三、具体实现
三、具体实现
1、登录功能:用户可以通过或第三方社交账号登录,并设置密码。登录后, 用户可以浏览自己的音乐库,以及搜索歌曲、歌手、专辑等;
三、具体实现
2、搜索功能:用户可以通过关键字搜索歌曲、歌手、专辑等,也可以通过分 类筛选;
3、播放功能:用户可以播放、暂停、调节音量、添加歌曲到播放列表、从播 放列表中删除歌曲等操作;
4、其他功能实现
4、其他功能实现
除了音乐播放和音频处理,音乐播放器还需要实现其他功能,如歌词显示、 播放控制、定时关机等。这些功能可以通过Android SDK提供的API和Java编程 语言来实现。例如,可以使用Java的线程和定时器技术来实现定时关机功能。
四、总结
四、总结
本次演示介绍了基于Android的音乐播放器设计与实现的基本内容和实现方法。 主要包括了音乐播放器的功能概述、设计思路和实现方法等方面的内容。通过这 些内容的介绍,希望能对大家有所帮助,让我们一起努力,为美好的音乐事业贡 献自己的力量!
三、实现步骤
2、界面设计:使用XML布局文件设计界面,包括主界面、播放列表界面、歌 曲详情界面等。
三、实现步骤
3、数据库设计:创建SQLite数据库,定义表结构并实现增删改查操作。 4、音频解码和播放:使用MediaPlayer类进行音频解码和播放,实现播放、 暂停、停止等功能。

基于Android-系统的音乐播放器设计与实现

基于Android-系统的音乐播放器设计与实现

基于Android 系统的音乐播放器设计与实现实验报告一、实验要求:本课程设计的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp 3,Wav 多种格式的音乐文件,能够控制播放,暂停,重播,停止,要求视觉外观美观,操作简单。

二,设计思想首先查找相关书籍与文献,了解An droid 的构架并搭建An dr oid 开发平台。

查找相关资料,了解现阶段基于And roid 平台手机音乐播放器发展现状以及相关功能。

播放器基本拥有以下功能:播放本地音乐文件对播放的状态进行控制播放设置,开始暂停停止三,系统结构ﻩ四、数据结构的说明和模块的算法流程图运行 结束暂停 开始 音乐播放器主界面音乐播放器 设定 播放界面 开始 暂停停止五、使用说明书菜单有6个功能:播放,暂停,停止,重播。

播放功能:点击后事件触发,传入歌曲名字,让程序操作该名字进行播放。

暂停功能:点击后事件触发,歌曲暂停播放。

停止功能:点击后事件触发,歌曲停止播放。

重播功能;点击后事件触发,歌曲重新播放。

六、运行结果和结果分析作为Android平台上开发的应用软件,本设计具备与用户交互的界面,界面简洁美观易于操作。

作为一款在线音乐客户端,提供给用户在线选歌的方便,提供在线播放歌曲的即时信息,如歌曲名,歌手名,时长等等。

七、我评价与总结现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。

随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。

因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。

本项目是一款基于Android手机平台的音乐播放器,使Android 手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。

Android多媒体播放器设计任务书

Android多媒体播放器设计任务书

Android多媒体播放器设计任务书第一篇:Android多媒体播放器设计任务书毕业设计(论文)任务书(指导教师填写)题目:Android多媒体播放器——本地视频研究目的采用Android的开发工具与技术完成Android 多媒体播放器——本地视频模块的开发与设计,熟悉和掌握Android开发的方法与技术,撰写并按期提交毕业论文(打印)和项目设计的软件(光盘)。

研究内容1功能要求(1)从手机sdcard搜索存放的视频(2)建立SQLite数据库进行先关操作(3)对整个播放进行优化2数据管理需求:(1)全部列表:视频路径、视频名(2)最近播放列表:视频路径、视频名(3)收藏列表:视频路径、视频名(注:以上表单仅供参考,学生可以根据实际情况增删表单以及字段信息)毕业论文(正文)基本框架系统开发工具与技术系统总体规划与设计界面设计与功能模块的程序设计系统功能测试进度安排第5周:学生提交开题报告,指导教师修改并回复学生,汇总上报。

第 5周-第12周:完成项目总体设计, 译文(3000汉字以上), 软件设计.第13周-第14周:学生在校完成论文撰写,提交指导教师审稿、定稿后打印,按指定要求装订成册.刻录光盘,准备答辩。

主要参考资料[1] 何玉洁.数据库原理与应用教程[M].北京:机械工业出版社,2005[2] 孙卫琴,李洪成.T omcat与Java Web开发技术详解[M],北京:电子工业出版社,2004[3] 唐友国,JSP网站开发详解[M],北京:电子工业出版社,2008[4] 刘晓慧,江雷.基于MVC模式设计与实现重点项目管理信息系统[J].计算机工程,2010[5] Vivek Chopra Beginning Java Server Pages[M].Wrox.2006[6] Bergsten.,H.Java server Pages, Third Edition[M],O'Reilly Media,Inc,2004指导教师:李欣联系电话:***E-Mail:***********************2011年11月12日第二篇:多媒体播放器的使用方法多媒体播放器,也叫RMVB播放器,一种可以在电视上播放网络视频文件的设备。

基于Android的音乐播放器设计

基于Android的音乐播放器设计

基于Android的音乐播放器设计一、引言随着移动互联网的发展,人们用手机听音乐的需求越来越大。

因此,对于一个音乐播放器来说,良好的用户体验和用户界面设计变得尤为重要。

基于Android系统的音乐播放器,可以充分利用Android系统的优势,为用户提供优质的音乐播放服务。

二、需求分析1.用户需求(1)良好的用户体验良好的用户体验是用户使用一个音乐播放器时最为关注的。

播放器要有良好的性能、播放流畅且不卡顿,增加用户使用时的留存时间。

(2)易操作性音乐播放器的操作要简单易学,一定要避免音乐播放器的操作复杂引起使用者的困惑和不愉快。

(3)方便的使用方便的使用就是快捷的定位到自己需要的功能,千万不要像一些播放器一样难以找到自己想要的功能。

(4)多种音乐格式支持目前音乐格式众多,一个好的音乐播放器一定要支持多种音乐格式的播放。

2.功能需求(1)播放功能重要的功能之一,音乐的播放一定要流畅不卡顿。

(2)歌词功能歌曲的歌词随着音乐的播放同步展示,让用户能够更好的理解和享受音乐。

(3)在线音乐功能在线音乐功能为用户提供了更为丰富的音乐选择,也为音乐平台提供更多的商业合作机会。

(4)下载功能这个功能是当网络环境不好时提供稳定的音乐学习环境,用户可以把歌曲下载下来,随时随地可以听取。

三、系统设计Android的音乐播放器设计1.音乐的存储用户存储的音乐和内建音乐的存储架构不同,因为内建的音乐是从系统预装的资源存储到系统内部存储,并被分类为系统音乐媒体数据库。

用户存储是用户自己存储的音乐,可以自定义目录和分类,因此不能直接做到类似内建音乐的音乐媒体库分类管理。

(2)外置存储外置存储就是SD卡,手动插上才能使用。

当我们访问外置存储的音乐时,需要文件读取的权限。

用户存储的音乐和内建存储的音乐在这个方面是一样的。

2.音乐文件和格式Android音乐播放有两种方式(1)内建资源内建资源的音乐文件保存在/res/raw目录下,这个音乐数据与.apk安装包一起发布。

android大作业音乐播放器

android大作业音乐播放器

android-大作业-音乐播放器软件技术系列课程Android大作业(2014 / 2015 学年第一学期)题目:音乐播放器的分析与设计专业软件工程(服务外包)学生姓名单珺瑜班级学号B12041305指导教师张怡婷易磊许鹏指导单位南京邮电大学计算机学院诚迈科技日期一、课题内容和要求音乐播放器,作为移动设备基础配备软件之一,主要功能包括从SDCard中读取音乐、显示播放音乐列表、播放音乐、显示音乐歌词、实现上一首、下一首、暂停、选择播放形式等功能。

本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。

同时给出了详细的系统设计过程、主要界面设计及主要功能运行流程图二、需求分析本课题基于Android手机平台上开发的音乐播放器主要设计了四个界面,包括:欢迎界面,主界面,播放界面和关于界面。

每个界面的主要功能为:欢迎界面为显示App的logo;主界面利用ListView显示读取SDCard后的App中的全部歌曲列表,通过滑动屏幕并选择可以实现与我的收藏界面、关于界面的切换,通过点击具体歌曲可以实现与播放界面的切换;我的收藏界面利用ListView显示用户收藏的歌曲列表,通过滑动屏幕并选择可以实现与主界面、关于界面的切换,通过点击具体歌曲可以实现与播放界面的切换。

播放界面用以显示正在播放的歌曲的歌曲名、歌手、歌词等主要信息,并设置按钮实现前一曲、后一曲、播放暂停等功能,通过播放形式按钮可以选择单曲循环、随机播放或者是顺序播放,除此之外,界面下方利用Android自带seekbar设置的进度条可以根据用户需要调节播放进度;关于界面用以显示App的主要功能等信息。

三、软件设计(一)、系统主要功能模块包括:1、欢迎界面:初始化Intent以实现欢迎界面开始1.5秒之后进入歌单列表界面。

2、歌单列表:a、歌曲:利用ListView类显示歌曲列表,点击歌曲名称即选定歌曲启动音乐播放器,播放选中的歌曲b、菜单:点击关于即可跳转至关于界面,点击我的收藏即可跳转至我的收藏界面3、我的收藏界面:a、歌曲:利用ListView类显示歌曲列表,点击歌曲名称即选定歌曲启动音乐播放器,播放选中的歌曲b、菜单:点击关于即可跳转至关于界面,点击歌曲列表即可跳转至主界面4、播放界面:a、播放:选择音乐后,点击播放按钮启动音乐播放器,即当MSG=MEDIA_PLAY时,播放所选中的歌曲,执行playMusic;b、暂停:点击暂停键,即当MSG=MEDIA_PAUSE时,停止正在播放的歌曲,执行pauseMusic;c、上一曲:点击上一曲,即当MSG=MEDIA_PREVIOUS时,停止正在播放的歌曲,播放播放列表中上一首歌曲;d、下一曲:点击下一曲,即当MSG=MEDIA_NEXT时,停止正在播放的歌曲,播放播放列表中下一首歌曲;e、播放模式:点击播放模式,利用MusicCompleteListener类可以依次改变播放模式至随机播放、列表循环或者单曲循环,进而执行randomRepeat、allRepeat或者singleRepeat;(1)随机播放:利用系统随机生成一个0—1之间的随机数乘当前position,再用int取整,即为下一首歌曲的position(2)列表循环:利用position变量,当position++!=NULL时,position自增,否则position=0(3)单曲循环:position不发生任何变化f、进度条:利用Android自带的seekbar设置进度条,用户可以根据进度条来自主控制歌曲播放进度,随意跳转;g、歌词显示:利用LyricView类完成歌词随着时间滚动显示的功能。

Android应用开发--MP3音乐播放器代码实现(一)

Android应用开发--MP3音乐播放器代码实现(一)

Android应⽤开发--MP3⾳乐播放器代码实现(⼀)需求1:将内存卡中的MP3⾳乐读取出来并显⽰到列表当中1. 从数据库中查询所有⾳乐数据,保存到List集合当中,List当中存放的是Mp3Info对象2. 迭代List集合,把每⼀个Mp3Info对象的所有属性,保存到Map对象当中3. 定义⼀个List集合,把Map对象添加到List集合当中4. 通过定义⼀个SimpleAdpter,调⽤setAdpter⽅法,将数据显⽰到列表当中[java]1. /**2. * ⽤于从数据库中查询歌曲的信息,保存在List当中3. *4. * @return5. */6. public List<Mp3Info> getMp3Infos() {7. Cursor cursor = getContentResolver().query(8. MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,9. MediaStore.Audio.Media.DEFAULT_SORT_ORDER);10. List<Mp3Info> mp3Infos = new ArrayList<Mp3Info>();11. for (int i = 0; i < cursor.getCount(); i++) {12. Mp3Info mp3Info = new Mp3Info();13. cursor.moveToNext();14. long id = cursor.getLong(cursor15. .getColumnIndex(MediaStore.Audio.Media._ID)); //⾳乐id16. String title = cursor.getString((cursor17. .getColumnIndex(MediaStore.Audio.Media.TITLE)));//⾳乐标题18. String artist = cursor.getString(cursor19. .getColumnIndex(MediaStore.Audio.Media.ARTIST));//艺术家20. long duration = cursor.getLong(cursor21. .getColumnIndex(MediaStore.Audio.Media.DURATION));//时长22. long size = cursor.getLong(cursor23. .getColumnIndex(MediaStore.Audio.Media.SIZE)); //⽂件⼤⼩24. String url = cursor.getString(cursor25. .getColumnIndex(MediaStore.Audio.Media.DATA)); //⽂件路径26. int isMusic = cursor.getInt(cursor27. .getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));//是否为⾳乐28. if (isMusic != 0) { //只把⾳乐添加到集合当中29. mp3Info.setId(id);30. mp3Info.setTitle(title);31. mp3Info.setArtist(artist);32. mp3Info.setDuration(duration);33. mp3Info.setSize(size);34. mp3Info.setUrl(url);35. mp3Infos.add(mp3Info);36. }37. }38. return mp3Infos;39. }[java]1. /**2. * 填充列表3. * @param mp3Infos4. */5. public void setListAdpter(List<Mp3Info> mp3Infos) {6. List<HashMap<String, String>> mp3list = new ArrayList<HashMap<String, String>>();7. for (Iterator iterator = mp3Infos.iterator(); iterator.hasNext();) {8. Mp3Info mp3Info = (Mp3Info) iterator.next();9. HashMap<String, String> map = new HashMap<String, String>();10. map.put("title", mp3Info.getTitle());11. map.put("Artist", mp3Info.getArtist());12. map.put("duration", String.valueOf(mp3Info.getDuration()));13. map.put("size", String.valueOf(mp3Info.getSize()));14. map.put("url", mp3Info.getUrl());15. mp3list.add(map);16. }17. mAdapter = new SimpleAdapter(this, mp3list,18. yout.music_list_item_layout, new String[] { "title", "Artist", "duration" },19. new int[] { R.id.music_title, R.id.music_Artist, R.id.music_duration });20. mMusiclist.setAdapter(mAdapter);21. }实现效果如图:需求2:点击列表的每⼀项,启动⼀个服务来播放⾳乐1. 注册条⽬点击监听器OnItemClickListener2. 定义⼀个实现OnItemClickListener接⼝的内部类3. 定义⼀个继承Service的服务类PlayerServie1. 注册条⽬点击监听器OnItemClickListener[java]1. mMusiclist = (ListView) findViewById(R.id.music_list);2. mMusiclist.setOnItemClickListener(new MusicListItemClickListener());3. mp3Infos = getMp3Infos();4. setListAdpter(getMp3Infos());2. 定义⼀个实现OnItemClickListener接⼝的内部类[java]1. private class MusicListItemClickListener implements OnItemClickListener {2. @Override3. public void onItemClick(AdapterView<?> parent, View view, int position,4. long id) {5. if(mp3Infos != null) {6. Mp3Info mp3Info = mp3Infos.get(position);7. Log.d("mp3Info-->", mp3Info.toString());8. Intent intent = new Intent();9. intent.putExtra("url", mp3Info.getUrl());10. intent.putExtra("MSG", AppConstant.PlayerMsg.PLAY_MSG);11. intent.setClass(MainActivity.this, PlayerService.class);12. startService(intent); //启动服务13. }14. }15. }3. 定义⼀个继承Service的服务类PlayerServie(未完善的Service类)[java]1. package com.wwj.sb.service;2.3.4. import android.annotation.SuppressLint;5. import android.app.Service;6. import android.content.Intent;7. import android.media.MediaPlayer;8. import android.media.MediaPlayer.OnPreparedListener;9. import android.os.IBinder;10.11. import com.wwj.sb.domain.AppConstant;12.13. @SuppressLint("NewApi")14. public class PlayerService extends Service {15. private MediaPlayer mediaPlayer = new MediaPlayer(); //媒体播放器对象16. private String path; //⾳乐⽂件路径17. private boolean isPause; //暂停状态18.19. @Override20. public IBinder onBind(Intent arg0) {21. return null;22. }23.24. @Override25. public int onStartCommand(Intent intent, int flags, int startId) {26. if(mediaPlayer.isPlaying()) {27. stop();28. }29. path = intent.getStringExtra("url");30. int msg = intent.getIntExtra("MSG", 0);31. if(msg == AppConstant.PlayerMsg.PLAY_MSG) {32. play(0);33. } else if(msg == AppConstant.PlayerMsg.PAUSE_MSG) {34. pause();35. } else if(msg == AppConstant.PlayerMsg.STOP_MSG) {36. stop();37. }38. return super.onStartCommand(intent, flags, startId);39. }40.41.42. /**43. * 播放⾳乐44. * @param position45. */46. private void play(int position) {47. try {48. mediaPlayer.reset();//把各项参数恢复到初始状态49. mediaPlayer.setDataSource(path);50. mediaPlayer.prepare(); //进⾏缓冲51. mediaPlayer.setOnPreparedListener(new PreparedListener(position));//注册⼀个监听器52. }53. catch (Exception e) {54. e.printStackTrace();55. }56. }57.58. /**59. * 暂停⾳乐60. */61. private void pause() {62. if (mediaPlayer != null && mediaPlayer.isPlaying()) {63. mediaPlayer.pause();64. isPause = true;65. }66. }67.68. /**69. * 停⽌⾳乐70. */71. private void stop(){72. if(mediaPlayer != null) {73. mediaPlayer.stop();74. try {75. mediaPlayer.prepare(); // 在调⽤stop后如果需要再次通过start进⾏播放,需要之前调⽤prepare函数76. } catch (Exception e) {77. e.printStackTrace();78. }79. }80. }81.82.83. @Override84. public void onDestroy() {85. if(mediaPlayer != null){86. mediaPlayer.stop();87. mediaPlayer.release();88. }89. }90. /**91. *92. * 实现⼀个OnPrepareLister接⼝,当⾳乐准备好的时候开始播放93. *94. */95. private final class PreparedListener implements OnPreparedListener {96. private int positon;97.98. public PreparedListener(int positon) {99. this.positon = positon;100. }101.102. @Override103. public void onPrepared(MediaPlayer mp) {104. mediaPlayer.start(); //开始播放105. if(positon > 0) { //如果⾳乐不是从头播放106. mediaPlayer.seekTo(positon);107. }108. }109. }110.111. }public class MusicActivity extends Activity {private boolean isStop = false;private MediaPlayer mPlayer;public final String TITLE = Environment.getExternalStorageDirectory()+ "/iwantyourlove.mp3";private File file;private SeekBar seekBar;private ImageView play;private TextView title;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.music_main);initWidgets();}// 重新初始化播放器public void initWidgets() {play = (ImageView) findViewById(R.id.img_stop);title = (TextView) findViewById(R.id.title);seekBar = (SeekBar) findViewById(R.id.seek);seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Overridepublic void onStopTrackingTouch(SeekBar seekBar) {//seekBar.setProgress(mPlayer.getCurrentPosition() *seekBar.getMax() / total); //Log.i("sss", seekBar.getProgress()+"");//mPlayer.seekTo(mPlayer.getCurrentPosition());mPlayer.seekTo(seekBar.getProgress() * mPlayer.getDuration() /100 );}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// Log.i("progress", ""+progress);// Log.i("qqq", seekBar.getProgress()+"");// progress = currentPosition * 100 / duration;//progress*duration/100//mPlayer.seekTo(progress * mPlayer.getDuration() /100 );}});file = new File(TITLE);title.setText(file.getName());mPlayer = new MediaPlayer();try {mPlayer.setDataSource(TITLE);mPlayer.prepare();} catch (Exception e) {e.printStackTrace();}}public void play(View v) {if (!mPlayer.isPlaying()) {mPlayer.start();}}public void pause(View v) {if (mPlayer.isPlaying()) {mPlayer.pause();}}public void replay(View v) {mPlayer.reset();initWidgets();// 重新构建播放器// mPlayer.start();play(v);}public void stop(View v) {isStop = true;mPlayer.stop();play.setImageResource(R.drawable.player_play);}// ⽤图⽚代替按钮public void playOrPause(View v) {if (isStop) {// 停⽌后重新开始播放mPlayer.reset();initWidgets();mPlayer.start();play.setImageResource(R.drawable.player_pause);isStop = false;} else if (mPlayer.isPlaying()) {// 播放状态play.setImageResource(R.drawable.player_play);mPlayer.pause();} else {// 暂停状态play.setImageResource(R.drawable.player_pause);mPlayer.start();}// 异步任务new MusicTask().execute();}@Overrideprotected void onDestroy() {super.onDestroy();// 释放资源mPlayer.release();}// ⾳乐播放异步任务class MusicTask extends AsyncTask<Void, Void, Void> {//int current = mPlayer.getCurrentPosition();// 当前播放是什么位置,int total = mPlayer.getDuration(); // ⾳乐总共多长时间@Overrideprotected Void doInBackground(Void... params) {// 让SeekBar跟着⾳乐⼀起向右边⾛while (mPlayer.getCurrentPosition() <= total&&!isStop) { //!isPause不是停⽌状态try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}publishProgress();}return null;}@Overrideprotected void onProgressUpdate(Void... values) {super.onProgressUpdate(values);// Log.i("msg", ""+mPlayer.getCurrentPosition() * 100 / total);seekBar.setProgress(mPlayer.getCurrentPosition() *seekBar.getMax() / total); }@Overrideprotected void onPostExecute(Void result) {super.onPostExecute(result);}}}。

基于Android的Mp3播放器毕业设计

基于Android的Mp3播放器毕业设计

摘要由Google倡导发起的开放式手机联盟及其推出的Android平台一经发布便在业内引起了轩然大波。

在此背景下本人利用Eclipse和Android SDK开发工具设计出了一款基于Android的MP3播放器。

文章首先介绍了Android技术及其特点,然后介绍Android的开发环境,接着对系统进行了总体分析,在设计出了功能结构图和流程图之后,在分析需求的基础上详细阐述了MP3播放器的设计与实现过程,最后测试系统,对播放器的不足进行总结。

该播放器支持搜索本地音乐、播放音乐,集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体。

关键字:Android系统;MP3播放器AbstractBy Google advocate the release of the league and its mobile phone launched the launch of the Android platform has issued and caused a stir in the industry. I use Eclipse and Android SDK development tools design a MP3 player which based on Android. This article first introduces the Android technology and features, And then introduced the Android development environment, Then the system as a whole analysis, In a function structure chart and design flow chart after, On the basis of analysis demand expounds the MP3 player after the design and realization of the process, The last test system, To the deficiency of the players were summarized in this paper. The player supports playback of local music, search, and it has a certain practicality. The music player episode pause, stop, and a on, next, volume adjustment, lyrics display functions, such as performance is good, and it can operate independently in the Android system.Keywords:Android system; MP3 player目录1 绪论 (1)1.1 课题背景 (1)1.2 Android的介绍 (1)1.3 Android开发环境的搭建 (2)1.4 Android SDK 1.6的模拟器的介绍 (5)2 系统的总体设计概要 (6)2.1 总体功能架构 (6)2.2 功能流程图 (7)3 详细设计与实现 (8)3.1 Android程序设计的一般方法 (8)3.2 MP3播放器的模块设计 (8)3.2.1编码规范 (8)3.2.2界面的搭建 (8)3.2.3播放模块 (11)4 测试与分析 (14)4.1软件测试准备工作 (14)4.2系统测试内容概要 (14)4.2.1 列表的更新测试 (14)4.2.2各种格式的歌曲的详情查看测试 (14)4.2.3测试音乐播放器主页面的显示以及一些主要操作 (14)4.2.4 测试音乐播放器的其他一些基本操作 (15)5.结束语 (16)6.参考文献 (17)1 绪论1.1 课题背景Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。

#Android应用开发MP3简单音乐播放器

#Android应用开发MP3简单音乐播放器

Android应用开发--MP3简单音乐播放器点击列表会进入播放的Activity,在这个Activity会接收到从前面的Activity传来的数据,在通过这些数据来启动服务来播放音乐,整个过程很简单,需要注意的是我们要接收的数据是哪些内容,还有我们向Service要传什么样的数据,这是根据自己的开发思路和需求来决定的,等一下你们会看到小鬼到底往Service传了些什么东西,然而这些数据到底起什么作用,需要慢慢去体会,因为这是需要一点一点去调试的。

好了,下面贴一下整个Activity的实现代码,主要是播放的各种状态的实现,因为这个音乐播放器并没有完全开发完,所以朋友们需要弄清楚这一点。

如果对代码的实现有不清楚的,可以给小鬼留言,小鬼有空一定给大家解答。

效果如下:代码如下:package com.anjovo.as.chapter10.exam01。

import java.io.IOException。

import android.media.AudioManager。

import android.media.MediaPlayer。

import .Uri。

import android.os.Bundle。

import android.app.Activity。

import android.content.Intent。

import android.view.ContextMenu。

import android.view.ContextMenu.ContextMenuInfo。

import android.view.Menu。

import android.view.MenuItem。

import android.view.SubMenu。

import android.view.View。

import android.widget.Button。

import android.widget.ImageView。

androidmp3课程设计

androidmp3课程设计

androidmp3课程设计一、课程目标知识目标:1. 学生能理解Android系统中MP3播放器的基本原理和功能。

2. 学生能掌握在Android平台上开发MP3播放器的关键技术和步骤。

3. 学生能了解MP3文件格式和相关音频处理知识。

技能目标:1. 学生能够运用Android Studio开发环境,独立设计和编写具有基本功能的MP3播放器应用程序。

2. 学生能够通过调试和测试,优化MP3播放器性能,解决常见问题。

3. 学生能够运用所学的编程知识,为MP3播放器添加自定义功能和界面设计。

情感态度价值观目标:1. 学生培养对编程和移动应用开发的兴趣,提高信息技术素养。

2. 学生树立团队协作意识,学会与他人共同解决问题,提高沟通能力。

3. 学生养成自主学习和持续探究的习惯,勇于面对挑战,克服困难。

课程性质:本课程为信息技术课程,以实践操作为主,理论讲解为辅。

学生特点:学生具备一定的编程基础,对Android系统有一定了解,具有较强的学习能力和动手能力。

教学要求:教师应注重培养学生的实际操作能力,鼓励学生自主探究和团队协作,关注学生个体差异,提供有针对性的指导。

教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. Android系统简介:Android平台的发展历程、系统架构及特点。

- 教材章节:第一章 Android概述2. MP3文件格式与处理:MP3文件的结构、编码原理及音频处理技术。

- 教材章节:第二章 音频技术基础3. Android音频播放框架:MediaPlayer类的使用、音频焦点管理、通知栏控制等。

- 教材章节:第三章 Android音频播放4. Android Studio开发环境配置:安装Android Studio、配置模拟器及真机调试。

- 教材章节:第四章 Android开发工具与环境5. MP3播放器界面设计:UI布局、控件使用、自定义控件。

- 教材章节:第五章 Android界面设计6. 编写MP3播放器代码:初始化MediaPlayer、播放/暂停/停止功能、进度条更新、列表播放等。

(音乐播放器)课程实训任务书

(音乐播放器)课程实训任务书

课程实训报告课程名称计算机系统综合实训课题名称基于android的音乐播放器设计专业计算机科学与技术班级学号姓名指导教师陈华光2011年12 月4 日湖南工程学院课程实训任务书课程名称计算机系统综合实训课题基于android的音乐播放器设计专业班级学生姓名学号指导老师陈华光审批任务书下达日期2011 年12 月4 日任务完成日期2011 年12 月日一、设计内容与设计要求1.设计内容:在手机屏幕上设计一个Mp3音乐播放器,这个播放器中需要有暂停、停止、上一首、下一首等基本按钮,实现歌曲的开始,暂停,停止等功能,并能显示歌曲的作者和歌曲的相关信息。

2.设计要求:(1)论述课题的性质、内容以及本次课程实训的目的和要求。

(2)说明Android系统对计算机软、硬件环境的基本要求,对Android应用程序作简要的说明。

(3)界面设计和游戏操作设计:界面要求美观和友好(可使用图片资源文件),使用手机键盘上的4个方向键控制方向,按照手机上的操作习惯进行设计。

(4)将软件划分为以下几个模块:(a)<启动画面>模块。

主要功能是显示软件启动画面。

利用定时器线程去控制启动画面显示时间,并且当用户按下按键的时候,会立即中断启动画面的显示并跳转到<主菜单>模块。

(b)<音频播放>模块。

主要功能是提供播放软件的用户界面。

用户界面由 Android的XML 配置生成。

调用<播放列表管理>模块,让用户选择需要播放的列表。

(c)<文件浏览器>模块。

用于浏览内存卡上的文件。

如果路径是文件夹,则列出该文件夹下的所有MP3文件的播放器播放。

(d)<正在播放>模块。

主要功能是显示歌曲的相关信息( 专辑封面、专辑名称、歌手、长度等) 和显示正在播放歌曲的歌词。

(5)编写代码、上机输入、调试、修改并运行通过。

(6)编写实训说明书。

说明书是总结性的技术文件,应全面叙述整个设计的内容及过程(可参考上述6条),发现的问题及解决方法等。

毕业设计-基于Android的MP3音乐播放器

毕业设计-基于Android的MP3音乐播放器

毕业设计题目基于Android的MP3音乐播放器设计摘要Android就是一个开源的系统,它底层是基于Linux的操作系统,本设计的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。

同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,并且对设计过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。

该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不作深究。

关键词:Android ;开源系统; linux ;音乐播放器ABSTRACTAndroid system is an open source, it is based on the operating system, use the Linux music player of the Android open-source system technology, using the Java language and editing tools for players to Eclipse. Presents the detailed design process, the part of the system and the main functions of operation interface diagram of height, this paper also flow process problems and solving methods are discussed in detail, and the music player episode, pause, stop and a, next, volume adjustment, lyrics display functions, such as performance is good, can operateindependently in the Android system. This player has access to the file browser phone functions, songs and played pattern, open and close condition of friendly words, because the players to explore, so the application procedure for specific compression algorithm not probe.Keywords:Android ; Open source system ; linux ; music player目录第1章引言 (1)1.1设计背景 (1)1.2编写目的 (1)第2章 Android项目介绍 (1)2.1什么是Android? (2)2.1.1 Android简介 (2)2.1.2 Androi d特性 (2)2.1.3Android的基本框架(Android Architecture) (3)2.1.4 Android系统的四大组件 (6)2.2搭建Android开发环境 (7)2.3 Android 常用工具的使用 (9)2.3.1命令行的使用 (9)2.3.2 Dalvik Debug Monitor Service (DDMS)的使用 (10)2.4 Android音乐播放器的工程 (10)2.4.1 Android项目 (10)2.4.2 Android工程程序结构 (11)2.4.3 AndroidManifest.xml文件 (12)第3章系统需求分析......................................................................................................................................... - 15 -3.1 功能需求(用例图分析) ................................................................................................................. - 15 -3.1.1 播放器的基本控制需求 ......................................................................................................... - 15 -3.1.2 播放清单列表管理需求 ......................................................................................................... - 16 -3.1.3 播放友好性需求 ..................................................................................................................... - 18 -3.1.4 播放器扩展卡需求 ................................................................................................................. - 19 -3.1.5 功能需求(时序图)分析 ......................................................................................................... - 20 -3.2 系统结构图和流程图......................................................................................................................... - 22 -3.3 系统界面需求..................................................................................................................................... - 24 -3.4 系统性能需求..................................................................................................................................... - 25 -3.5 运行环境需求..................................................................................................................................... - 25 - 第4章 Android 数据库设计........................................................................................................................... - 25 -4.1数据库及字段属性设计...................................................................................................................... - 26 -4.1.1字段设计(表、图) .............................................................................................................. - 26 -4.1.2音乐播放器E-R图.................................................................................................................. - 27 -4.2数据库连接.......................................................................................................................................... - 27 -4.2.1创建数据库.............................................................................................................................. - 28 -4.2.2操作数据库.............................................................................................................................. - 28 -4.2.3数据显示.................................................................................................................................. - 29 - 第5章播放器系统功能详细设计..................................................................................................................... - 31 -5.1音乐播放器主界面功能实现 .............................................................................................................. - 31 -5.1.1 播放器主界面......................................................................................................................... - 31 -5.1.2播放界面音轨的实现 .............................................................................................................. - 32 -5.1.3 播放器播放、暂停、停止等功能 ......................................................................................... - 34 -5.2 播放列表功能..................................................................................................................................... - 36 -5.3 菜单功能............................................................................................................................................. - 37 -5.3.1 菜单界面................................................................................................................................. - 38 -5.3.2菜单功能实现.......................................................................................................................... - 39 -5.4 播放设置界面..................................................................................................................................... - 40 -5.4.1 界面实现................................................................................................................................. - 40 -5.4.2 歌词显示实现......................................................................................................................... - 42 -5.5 手机扩展卡的访问............................................................................................................................. - 43 -5.5.1 文件浏览器界面 ..................................................................................................................... - 43 -5.5.2 文件浏览器功能实现 ............................................................................................................. - 44 -5.6 数据存储方式..................................................................................................................................... - 45 -5.6.1 SharedPreferences .................................................................................................................... - 45 -5.6.2 File存储方式........................................................................................................................... - 46 -5.6.3 SQLiteDatabase数据库.......................................................................................................... - 46 - 第6章总结......................................................................................................................................................... - 48 - 参考文献............................................................................................................................................................. - 49 - 名词术语:......................................................................................................................................................... - 49 - 致谢..................................................................................................................................................................... - 50 - 附录1 外文文献原文............................................................................................................. 错误!未定义书签。

基于.android平台的音乐播放器的课程设计报告

基于.android平台的音乐播放器的课程设计报告

吉首大学JISHOU UNIVERSITY《疯狂Android讲义》课程设计报告书题目音乐播放器作者孙琛赵凡卓朱世康王喜元所属学院软件服务外包学院专业年级移动互联2012级指导老师祝勇军写作时间2014年4月01日吉首大学软件学院教务办制第1章绪论 (4)1.1 选题的目的及意义 (4)1.2 本课题涉及内容的研究现状 (4)1.3 本系统要实现的基本目标和研究内容 (4)第3章需求分析 (5)3.1 软件目标 (5)3.2 功能需求 (5)3.3系统界面需求 (5)3.4系统性能需求 (5)第4章系统的总体设计 (5)4.1 设计思想 (6)4.2 系统功能结构图 (6)第5章数据库的设计 (9)5.1 数据库表的介绍 (9)5.1.1用户注册表 (9)5.1.2 完成下载的音乐表 (9)5.1.3 播放清单表 (9)5.2 数据库连接 (9)第6章系统详细设计 (10)6.1 欢迎界面模块详细设计 (10)6.2播放列表模块详细设计 (10)6.3 歌曲播放模块详细设计 (11)6.4 本地音乐模块详细设计 (12)6.5 会员登录模块详细设计 (13)6.6 会员注册模块详细设计··············错误!未定义书签。

6.7 音乐下载模块详细设计 (15)6.8 设置皮肤模块详细设计 (15)第7章系统测试 (16)7.1 登录功能测试 (16)7.2 图片上传功能测试 (17)7.3 文件上传功能测试 (18)结论 (19)第1章绪论1.1 选题的目的及意义现今社会生活紧张.而欣赏音乐是其中最好的舒缓压力的方式之一.本项目的目的是开发一个可以播放主流音乐文件格式的播放器.本设计的实现的这主要功能是播放Mp3.Wav多种格式的音乐文件.并且能够控制播放.暂停.停止.上一曲.下一曲.音量调节.视觉外观.播放列表和歌曲文件的管理操作等多种播放控制功能.界面简明.操作简单。

Android课程设计---基于Android系统的音乐播放器设计与实现

Android课程设计---基于Android系统的音乐播放器设计与实现

课程设计报告书课程名称:操作系统原理题目:基于Android系统的音乐播放器设计与实现 2012 年 7 月 5 日课程设计任务书设计题目:基于Android系统的音乐播放器设计与实现初始条件:Linux操作系统,Android开发环境,Java编译环境,SQLite数据库要求完成的主要任务:主要任务:现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp3,Wav多种格式的音乐文件,能够控制播放,暂停,停止,上一曲,下一曲,能够调节音量,能播放RMVB格式的视频文件,此外,还能支持中文、英文等语言界面。

要求视觉外观美观,操作简单。

本项目是一款基于Android手机平台的音乐播放器的子模块,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。

使人们的生活更加多样化。

也使设计者更加熟练Android的技术和其它在市场上的特点设计报告撰写格式要求:1设计题目与要求 2 设计思想3系统结构 4 数据结构的说明和模块的算法流程图5 使用说明书(即用户手册):内容包含如何登录、退出、读、写等操作说明6 运行结果和结果分析(其中包括实验的检查结果、程序的运行情况)7 自我评价与总结 8 附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;时间安排7月1日布置课程设计任务;分配题目后,查阅资料、准备程序;7月 2~7月4 日上机调试程序、书写课程设计报告;7月5 日提交课程设计报告及相关文档。

基于Android平台的音乐播放器的播放控制功能设计摘要Android简介:Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。

目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。

Android操作系统最初由Andy Rubin开发,最初主要支持手机。

软件工程综合实践课程设计-基于android的手机音乐播放器[管理资料]

软件工程综合实践课程设计-基于android的手机音乐播放器[管理资料]

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

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

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

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

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

3.显示歌词:能显示播放歌曲的歌词。

4.添加音乐:在文件夹中添加音乐进播放列表。

5.删除音乐:删除播放列表的歌曲。

三、进度安排1.第四周分组分工,5人。

并选择题目2.第五~九周独立完成各自内容及相关文档。

3.第十周周整合,联调。

4.第十一周答辩。

四、基本要求1.各组指定组长一名,组长负责分工,分工要求要明确,不得重叠。

组长有加分。

各个成员独立完成各自的部分,不得抄袭。

2.答辩要求每个人讲清楚自己做的部分。

课程负责人签名:年月日目录第一章引言 (4)目的及范围 (4)第二章需求说明 (5)系统参与者 (5)系统用例 (5) (6)第三章架构设计说明 (9)逻辑视图 (9)进程视图 (9)开发视图 (10)物理视图 (11)用例视图 (12)第四章用例设计 (13)播放音乐用例设计 (13) (14)切换音乐用例设计 (14)显示音乐列表用例设计 (15)删除音乐用例设计 (16)显示艺术家用例设计 (17)显示专辑用例设计 (18)显示最近播放用例设计 (19)启动随机播放用例设计 (20)启动单曲循环播放用例设计 (21)播放进度调节用例设计 (22)第五章设计类说明 (24)设计类字典 (24)第六章测试 (25)测试需求 (25)测试用例 (25)缺陷 (32)参考文献 (34)心得体会 (35)第一章引言目的及范围随着科技的进步,手机的功能也不断的得到丰富,从最早的“大哥大”到现在的商务手机,只能手机,音乐手机等等,功能也从单纯的打电话发展到了发短信,听歌,上网……手机和我们生活的联系越来越紧密,手机的功能也是很多人们关注的焦点。

android实验报告MP3播放器

android实验报告MP3播放器
public void onClick(View v) {
if(mItemListener!=null){
mItemListener.onDownLoad(song);
}
}
});
viewHolder.ibtn_web_list_item_download.setFocusable(false);
viewHolder.ibtn_web_list_item_download.setFocusableInTouchMode(false);
private RadioGroup radiogroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.tabhost_list);
4、掌握远程服务的绑定和调用方法
5、了解AIDL语言的用途和语法
【实验内容】
开发简易音乐播放程序,用后台服务功能实现音乐播放、暂停、切换等基本功能。要求分别以启动方式和绑定方式管理后台服务。
【实验设备】
安装配置了安卓组件的windows操作系统
【四、实验过程、数据和实验结果记录】
实验设计方案(实验方法、步骤、操作过程、设计型实验、实验数据记录表格):
viewHolder.ibtn_web_list_item_download=(Button)convertView.findViewById(R.id.ibtnonvertView.setTag(viewHolder);
}else{
viewHolder=(ViewHolder)convertView.getTag();

基于安卓的音乐播放器需求分析说明书

基于安卓的音乐播放器需求分析说明书

目录1.简介 (2)1.1 目的 (2)1.2范围 (3)1.3 APP参与者 (3)2.构架表示方式 (3)3.构架目标和约束 (3)4.APP用例 (4)4.1 播放/暂停/停止模块 (4)4.2 上一曲\下一曲模块 (6)4.3 音量模块 (9)5.层次结构 (12)6.逻辑视图 (12)7.进程视图 (13)8.部署视图 (14)9.数据视图 (17)10.大小和性能 (17)11.质量 (18)1. 简介1.1 目的本文档用于描述音乐播放器APP的总体架构,用于指导各app的具体实施。

本文档的用户包括系统设计师、开发人员、测试人员、评审组成员。

1.2范围此说明书适用于音乐播放器app项目。

1.3 APP参与者手机用户2. 构架表示方式3. 构架目标和约束✓主要建设功能:导入本地歌曲文件、选择显示歌词、更换皮肤、在线试听、在线下载(资源在服务器上)、选择显示歌手简介、选择显示专辑简介、选择推荐专辑内其他本地没有的歌曲、显示乐库歌曲排行榜、新建歌单、管理歌单等功能。

✓交互设计:提供良好的交互设计、操作简单快速、按钮及菜单设计合理,合理引导用户使用。

✓完善的日志,所有操作数据库记录日志。

✓个性化:提供完全个性化的播放平台,为不同用户定制符合其喜好的歌曲及歌单,为其提供不同的主题样式、播放模式、播放菜单。

✓用户记忆:提供记住用户名及记住密码功能,用户可选择记忆期限:周、月、半年、年、或永远。

✓app能够承受一次下载同事下载5首歌曲、在播放同时下载的并发压力。

✓各界面色彩基调相似。

操作习惯、风格相似。

4. APP用例歌曲界面控制可分为:播放/暂停/停止模块、上一曲/下一曲模块、音量模块。

4.1 播放/暂停/停止模块流程图:开始点击事件程序逻辑:当用户点击播放\暂停\停止按钮时,播放器就对当前播放事件监听从而控制当前音乐的播放\暂停\停止,部分关键代码如下://播放按钮playPauseBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {int cmd = 0;Intent i = new Intent(MusicService.MUSIC_CONTROL);//判断当前的状态值是什么状态如果是播放状态if (status == MusicService.STATUS_PLAYING) {cmd = MusicService.CMD_PAUSE; //发送暂停的命令} else if (status == MusicService.STATUS_STOPPED) {cmd = MusicService.CMD_START; //发送播放的命令} else {cmd = MusicService.CMD_RESUME; //继续播放的命令}i.putExtra("cmd", cmd); //将命令广播出去sendBroadcast(i); //发送广播} });4.2 上一曲\下一曲模块流程图:程序逻辑:当用户点击上一曲\下一曲按钮时,播放器就对当前播放事件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲\ 下一曲,关键代码如下://上一曲键事件监听器previousBtn.setOnClickListener (new OnClickListener() {public void onClick(View v) {Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_PREV;//发送前一首的命令i.putExtra("cmd", cmd); sendBroadcast(i);}});// 下一曲键事件监听器nextBtn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_NEXT;i.putExtra("cmd", cmd);sendBroadcast(i);}});//设置SeekBar的监听事件sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { //当停止拖动时调用的方法public void onStopTrackingTouch(SeekBar seekBar) { }public void onStartTrackingTouch(SeekBar seekBar) { }//当SeekBar拖动时会执行此方法public void onProgressChanged(SeekBar seekBar, int prog, boolean fromUser) {//fromUser参数意思是判断拖动是否是用户用手拖动的if (fromUser == true && Math.abs(prog - progress) >= 5) { progress = prog;Intent i = new Intent(MusicService.MUSIC_CONTROL);int cmd = MusicService.CMD_SEEK;//发送拖动的命令i.putExtra("cmd", cmd);i.putExtra("progress", progress);//讲拖动的进度传进ServicesendBroadcast(i);sb.setProgress(progress);}}});}4.3 音量模块流程图:N程序逻辑:声音有两个按钮控制,一个增加声音和一个减少声音。

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

毕业设计任务书
通信工程本科专业(08级)
题目:基于Android的MP3音乐播放器设计
学生姓名:武亚军班级:通信工程3班学号:08250315
指导教师:郑玉峰(校内),胡莉(校外)
一、设计目标和内容:
本文就是基于Android系统上的一款MP3音乐播放器应用程序的设计与实现。

Android是一个开源的系统,它底层是基于Linux的操作系统,本设计的MP3音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse 编辑工具对播放器进行编写。

同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,该音乐播放器集播放、暂停、停止、快进、上一首、下一首、音量调节、歌词显示等功能于一体,能在Android系统中能独立运行。

二、设计基本要求:
(1)完成MP3音乐播放器软件的需求分析,系统方案设计,选择软件开发工具,进行系统实施的全过程。

(2)完成毕业设计题目“基于Android的MP3音乐播放器设计”,进行需求分析,概要设计,详细设计,独立完成所承担的设计,测试,并能运行使用。

论文符合设计要求与规范,具有科学性、逻辑性。

(3)系统完整,术语准确,语言清晰,内容充实,论述全面,有文档设计的说明等。

主要具体内容如下:
介绍本设计的开发工具、运行环境,重点介绍设计的需求分析、总体设计、详细设计及主要实现技术。

(4)论文(所需材料、上机、实验、外文翻译)要求:
对本软件设计应完成相应的文档,如:需求分析中大量的相关材料的查询,软件开发工作中大量开发工具的学习,详细设计中系统实现流程等。

三、设计进度安排:
1)2012.3.1-2012.3.9:阅读查找相关设计文献资料,完成英文翻译和文献
综述;
2)2012.3.10-2012.3.16:根据资料和以往的开发、研究经验进行实验步骤
的概括和整个工程进程的描述;
3)2012.3.17-2012.4.24:完成系统分析的相关工作,基本完成有关书籍和
资料的学习和研究。

完成系统分析文档和系统设计文档;
4)2012.4.25-2012.5.1:中期检查(毕业设计的进度与质量、设计状况等)
5)2012.5.2-2012.5.24:完成设计、开发、调试和技术文档,完成毕业论
文初稿;
6)2012.5.25-2012.6.10:修改毕业论文,完善毕业设计工作,准备答辩。

四、主要参考文献(指导教师选定部分):
[1]陈昱,江兰帆.基于GoogleAndroid平台的应用程序开发和研究[J].福建电
脑,2008(11)
[2]杨丰盛.Android应用开发揭秘[M]第一版.北京:机械工业出版社,2010年
[3]姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统,2008(11)
[4]姚昱旻,刘卫国.Android与J2ME平台间即时通信的研究与实现[J].计算机
系统应用,2008(12)
[5]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代
化,2008(8).
[6]差沙,地狱男爵.用Android开发手机应用[J].程序员,2008(1)
[7]叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006.
[8]张超,王阿川,王智.基于J2ME和J2EE的手机软件的研究[J].黑龙江科技信
息,2007(3)
[9]刘向辉.基于Java的移动终端中间件的研究与设计[D].华东师范大学硕士
学位论文,2005.
[10]刁扣锁.短信息在嵌入式Linux系统中的设计与实现[D].东南大学硕士学
位论文,2005.
[11]张孝祥著.java就业培训教程[M].北京:清华大学出版社,2007.
[12]余志龙编著.GoogleAndroidSDK开发范例大全[M].北京:人民邮电出版
社,2009-7-1.
[13]E2ECloud工作室著.深入浅出GoogleAndroid[M].北京:人民邮电出版
社,2009-08-1.
[14]靳岩姚尚朗著.GoogleAndroid开发入门与实战[M].北京:清华大学出版社,2009-07-01.
[15]高昂著.支持动态语言的Android平台[M].北京:人民邮电出版社,2009-05-07.
[16]Foley van Dam,feiner,Hughes.Introduction to computer graphics
[M].[s.1.]:Addison-Wesley Publishing
[17]AndroidArchitecture:URL:/site/io/anatomy-physiolog y-of-an-android
[18] Google Android,
[19] Lalit Kumar, Rajesh Kushwaha, Rishi Prakash: "Design & Development of Small Linux Operating Systems for Browser Based Digital Set Top Box", 2009 First International Conference on Computational Intelligence, Communication Systems and Networks
[20] Qiong Li, Minqiang Guo: "Digital Recordable Integrated Television Based on Embedded Linux Operating System", 2009 World Congress on Computer Science and Information Engineering。

相关文档
最新文档