当前位置:文档之家› Android简易音乐播放器的设计与实现

Android简易音乐播放器的设计与实现

Android简易音乐播放器的设计与实现
Android简易音乐播放器的设计与实现

本科生毕业设计(论文)

( 2016 届)

设计(论文)题目 Android手机APP开发——音乐播放器作者刘晗

系、专业计算机科学与技术

班级1201

指导教师(职称)王李冬(副教授)

论文字数8000

论文完成时间2016年 4月10 日

杭州师范大学钱江学院教学部制

Android手机APP开发——音乐播放器

计算机科学与技术1201 刘晗指导教师王李冬

摘要:Android手机的APP开发越来越受到人们的关注。现今社会人们生活压力越来越大,人们更注重精神的需求。人们需要放松,需要释放,需要发泄,而音乐则是调节人们心情的一个有效资源。本文基于Androidstudio开发了一款面向Android手机的音乐播放器。该播放器包含本地音乐扫描、歌词匹配、音乐播放以及用户管理等功能。该APP具备界面优美、使用方便等优点,满足现金市场上的应用需求。

关键词:移动互联;Android;音乐播放器

APP Development on Android Mobile Phone- Music Player Computer Science and Technology class 1201 Liu Han

Instructor: Wang Lidong

Abstract: Android APP development has attracted more and more nowadays. Living pressure of modern society people is more and more serious, which made people pay more attention to mental demand. People need to relax, to release, need to vent, and the music is an effective resources to adjust mood for people . This article develops an Android music player based on Androidstudio. The player includes local music scan, matching lyrics, music playing and user management, and other functions. The APP has beautiful interface, convenient use, and meet the application requirements of cash in the market.

Key words:Mobile Internet; Android.;Music player

目录

1绪论 (1)

1.1研究背景 (1)

1.2国内外研究现状 (1)

1.3系统研究意义 (1)

1.4系统研究目标 (2)

2相关技术简介 (2)

2.1 Android技术 (2)

2.2 开发软件介绍 (3)

2.2.1 Android studio平台 (3)

2.2.2 SQLite 数据库 (4)

3 系统分析与设计 (4)

3.1系统可行性分析 (4)

3.2系统需求分析 (4)

3.3系统用例分析 (4)

3.4音频数据库 (4)

4 功能的实现 (5)

4.1本地音乐的搜索扫描 (5)

4.1.1 sqlite数据库连接 (5)

4.1.2音乐数据存储 (5)

4.1.3音乐信息显示 (7)

4.2 音乐播放 (10)

4.2.1音乐点击实现 (10)

4.3音乐的切换暂停 (15)

4.4音乐播放模式的切换 (17)

4.5欢迎界面的实现 (19)

5 总结 (20)

参考文献: (20)

致谢 (21)

Android手机APP开发——音乐播放器

计算机科学与技术1201 刘晗指导教师王李冬

1绪论

1.1研究背景

在最近这些年里,互联网业务和移动通信已经成为现今发展速度最为迅捷、发展前景最为诱人的两种业务领域。它们正以非常惊人的速度进行增长。迄今为止,全世界里移动通信工具的使用人员数量已经超过了16亿人,互联网的使用人员数量也已经超过了10亿人。在其中,中国移动通信用户的总数也已经超过3.7亿人,而互联网用户的总数则已经超过5.5亿人。这一史上未有的高速增长反映着随着时代的发展与技术的进步,人类越来越祈求不受时间、空间限制的信息交互。人们希望在任何时刻、任何地点高速便捷地连入互联网,发布亦或者是获取特定的讯息。由此可见,移动互联网的诞生应是历史中的必然。而Android是移动互联下诞生的产物。Android是Google在07年11月推出的手机操作系统,其的开源性打破了传统手机操作系统的封闭式格局,人们可以根据自身的喜好来修改自己手机,为其添加亦或是完善所需的应用软件。这也是Android最为吸引人的地方。

在现在的社会里人们生活压力越来越大,从而使人们更加注重起精神的需求。人们需要放松,需要释放,需要发泄,为了能够让人们在Android手机平台上自由的获取音乐资源并且进行收听,很有必要针对该平台开发一款实用的音乐播放器,这正是本文的主要内容。

1.2国内外研究现状

现如今市场上常见的音乐播放器包括有Xmovie,RealPlayer,QuickTim和Mplayer等。Xmovie它最早是电视机中播放节目的软件,其播放界面十分简陋,其没有其他多余的控制功能;RealPlayer在低宽带下十分优秀的支持音频、视频多媒体进行低损失传输,同时又具有非常优秀的流媒体在线播放功能;QuickTime是苹果公司开发的流式音视频解决方案,也是较早出现的流媒体文件格式之一。MPlayer 是Linux上出现的电影播放器,其功能十分强大,能够播放大部分音频格式格式的文件。由此可以看出:目前,媒体播放器主要发展趋势有以下几个方向:首先,要支持多样格式化。其次,要有可扩展姓。现今音频播放器的功能已变得越来越全面,如何使得播放器在现有的基础上能够拥有更完善的功能,也是吸引人们接受新产品的一种方式。

1.3系统研究意义

现如今互联网已经进入了较为成熟的时代,各种产品也越来越重视与用户之间的人机交互,这其中尤其少不了移动通讯工具-手机。现如今,智能手机已经逐渐成为绝大部分人民的必备品。无论是使用Android系统的三星、华为等手机,还是使用ios系统的苹果手机。用户所求的依然是更为简单易懂的

使用方式,因此手机上的APP就被人们尤为期待。在这个智能手机的时代,Android系统与IOS系统几乎垄断了整个智能手机平台。手机系统的统一以及开放带来了良好的APP开发条件,这样也就促使越来越多的App开发公司诞生了。

现如今社会的生活节奏十分紧张,而聆听音乐却是舒缓压力的首要选择,本文试图开发一款可以播放主流音频文件的音频播放器,本设计意图实现的功能主要是能运行Mp3等多种音频格式,并且能够进行音频的播放,暂停,停止,播放上一曲,播放下一曲,音量调节,和歌曲文件的管理操作等多种播放控制功能,界面设计力图简明易懂,操作力求简单。目前市面上虽然具备很多的音乐播放器,但是功能多比较繁杂,且不具备轻量级功能。为了能够面向大学生使用,并且占用较少的手机内存,开发一款轻量级的音乐播放器,还是具备较大的研究意义和实用价值。

综合上述分析,本文拟设计一款使用Android系统的手机音频播放器,使Android手机拥有一款独特个性的音频播放器,使手机应用变得更加生动,与人们生活更加贴近,让手机的主人能够处于音乐视频的旋律之中,让人们的生活更加多样化,也使本人能够更加熟练的使用基于Android系统的手机应用编程技术。

1.4系统研究目标

本课题的研究目标主要是由以下几方面功能组成:

(1)扫描本地音乐的功能:扫描存在手机内存与sdcard中的音乐文件,得到其文件有关的信息。(2)音乐播放功能:实现最为基础的播放音乐、暂停音乐、播放上一首、播放下一首音乐的功能。(3)播放模式的切换:实现单曲播放、单曲循环、顺序循环、随机播放。

(4)音乐歌词进度匹配功能:未注册用户可以注册并登录该学习平台。

(4)用户登陆功能:使登陆后的用户使用部分联网功能。

(5)欢迎界面功能:第一次登陆会先进入欢迎界面。

2相关技术简介

2.1 Android技术

Android是一款开源的Linux操作系统,由Google和开放手机联盟共同领导并进行开发。该操作系统主要应用于市场上的移动手机平台,并且Android手机已经深入人心。

目前,Android已经经历了多次的版本更新,下表列出了Android系统各种版本的发布时间以及其对应的版本号:

表2-1 Android版本列表

Android的版本其发布日期拥有代号

Android 1.1

Android 1.52009年4月30日Cupcake(纸杯蛋糕)

Android 1.62009年9月15日Donut(炸面圈)

Android 2.0/2.12009年10月26日Eclair(长松饼)

Android 2.22010年5月20日Froyo(冻酸奶)

Android 2.32010年12月6日Gingerbread(姜饼)

Android 3.0/3.1/3.22011年2月22日Honeycomb(蜂巢)

Android 4.02011年10月19日Ice Cream Sandwich(冰淇淋三

明治)

Android 4.12012年6月28日Jelly Bean(果冻豆)

Android 4.22012年10月8日Jelly Bean(果冻豆)

Android5.0待定Lime Pie(酸橙派)

自Android 1.5以来,Android系统离智能操作系统越来越接近,Google将Android系统的版本用各式甜品来命名。近些年里随着Android系统的普及与发展,非常多的厂商开始加入到Android的阵营里,在14年1月,Google对外公布的数据中,它Android系统的全球市场占有率已超过60%。

由于Android系统高速发展,在使用Android系统的设备中,其搭载的Android版本并没有得到很好的统一,各版本都拥有一定的占有率,下图为Google公布的各种Android版本的市场占有率:

图2-1 Android各种版本的市场占有率

自上图可知,在所有Android设备里占有率最高的是Android4.x,由此可见市场对Android版本的需求,已经越来越向高版本靠拢,本文也将着重针对Android4.x的应用开发进行讲解。

2.2 开发软件介绍

2.2.1 Android studio平台

Android Studio 是一种Android开发环境,本文采用该工具进行开发。该平台是面向Java语言的一个开发环境。跟Java开发环境Eclipse类似,Android Studio 提供了极多的Android 集成开发工具,方便手机开发人员进行调试。

本文选用Android Studio工具的另外一个原因在于该工具得到Google公司的大力支持。据了解,谷歌宣布将在15年底前停止对其他IDE开发环境的开发支持(以前主要是以Eclipse为主)。谷歌将

全力专注于Android Studio编译工具的开发和提供技术支持,其对Eclipse中止的官方支持包括Eclipse ADT(Android开发工具)插件以及Apache Antt编译系统等。

此外,Android Studio工具有一定的缺陷,典型的缺陷包括高内存的消耗,但是鉴于该平台的强大功能,且现阶段针对Android手机的主流开发平台仍然是AndroidStudio,因此本文综合多方面因素,仍然选择使用Android studio 作为开发平台。

2.2.2 SQLite 数据库

由于本文的数据库属于轻量级,因此选用SQLite进行开发。SQLite 数据库是一款使用C语言编写的嵌入式数据库,它是一种轻量级的数据库,其最初是为嵌入式而设计的。该数据库的主要优点在于语句处理上比oracle 或者SQL Server快很多,并且对内存的要求很低,在内存中它只需要几百KB的存储空间。对于开发一个小型的APP,用于存储部分音乐文件,SQLite是首选数据库平台。

3 系统分析与设计

3.1系统可行性分析

经济可行性——音乐播放器的成本主要集中在软件开发方面里,开发完只需安装就可以快速的投入使用,所以这点开发成本,十分低下,在经济上是可行的。

技术可行性——硬件方面,开发只需一台普通的个人电脑机,拥有简单的联网环境就足够了。在软件方面,只需用到Androd studio开发集成环境,SQlite3数据库,jdk8.0,开发语言用到Java语言,MVC设计模式。现今这些资源都是可以轻易得到的。也足以在指定时间内完成开发,所以技术上这也是可行的。

操作可行性——本文中的音频播放器界面简单明了,让人一目了然。各类功能设计也是规范有序,充分考虑了用户的习惯问题。在操作方面也是完全可行的。

3.2系统需求分析

一款安卓智能手机如果没有音乐播放器那就不能正常的播放音频文件,这将导致手机失去一项很重要的功能。音乐播放器是手机必不可少的软件之一,是手机播放音乐的工具,一个好的播放器可以给用户一个好的用户体验,简单快捷的操作是一个播放器所必须的。

3.3系统用例分析

用例图设计有关外部用户所能观察到的系统功能的模型图,呈现参与者和其的一些用例,以及它们之间的关系,主要用于对系统、子系统或类似的功能行为进行建模。

本文中通过进行需求分析得出用户所需主要功能包括为播放音乐、歌曲切换、循环模式切换等。

3.4音频数据库

Android系统自带的本地音频数据库表格如下:

表3-1 音频信息表

字段解析

_id 音频id,主键

_data 文件的绝对路径

_display_name 文件名

_size 文件大小,其单位为byte

date_added 加入到数据库的时间,单位为秒

date_modified 最后修改时间,单位为秒

title ID3 信息的标题,无则为不带扩展名的文件名title_key 全大写字母的标题

duration 播放时长

artist_id 作曲家id

composer ID3 信息,作曲家

album_id 专辑 id

track ID3 信息,音轨

year ID3 信息,年代

is_ringtone 是否为铃声,0 或 1

is_music 是否为音乐,只有为1时才会在音乐播放器显示is_alarm 是否为闹钟铃声

is_notification 是否为通知铃声

借助上表的字段名和Android提供的ContentProvider类可以针对性的获取音频数据,使本地音乐的扫描得到实现的可能。

4 功能的实现

4.1本地音乐的搜索扫描

4.1.1 sqlite数据库连接

Cursor cursor = getActivity().getContentResolver().query(

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,

MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

利用ContentProvider(内容提供者)调用安卓系统自带SQlite音频数据库,这路径地址为MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,返回结果为cursor结果集接口(类似于第一个音频文件数据的数据源地址)

4.1.2音乐数据存储

List mp3Infos = new ArrayList();

for (int i = 0; i < cursor.getCount(); i++) {

Mp3Info mp3Info = new Mp3Info();

cursor.moveToNext();

//Cursor类似双链链表,头节点为第零位(数据为空),所以正常遍历先moveToNext(到第一位)再执行,moveToNext的作用是将记录指针移动到下一行

String title = cursor.getString((cursor

.getColumnIndex(MediaStore.Audio.Media.TITLE)));//音乐标题

String album = cursor.getString(cursor

.getColumnIndex(MediaStore.Audio.Media.ALBUM));//专辑名

String artist = cursor.getString(cursor

.getColumnIndex(MediaStore.Audio.Media.ARTIST));//作者

String url = cursor.getString(cursor

.getColumnIndex(MediaStore.Audio.Media.DATA));//文件路径

long id = cursor.getLong(cursor

.getColumnIndex(MediaStore.Audio.Media._ID)); //音乐的id long duration = cursor.getLong(cursor

.getColumnIndex(MediaStore.Audio.Media.DURATION));//时长(毫秒)

long size = cursor.getLong(cursor

.getColumnIndex(MediaStore.Audio.Media.SIZE)); //文件大小

int isMusic = cursor.getInt(cursor

.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC));//是否是音乐

if (isMusic != 0) { //只把音乐添加到集合当中

mp3Info.setTitle(title);

mp3Info.setDuration(duration);

......

}

}

return mp3Infos;

}

根据数据类型分别得到音乐的id、标题、专辑名、艺术家、时长、文件大小、文件路径等属性,

然后利用for循环和cursor.moveToNext()遍历所有cursor结果集。将音乐对象的属性存到Mp3Info

自定义类对象的字段里,并将各个mp3Info对象存储到ArrayList集合mp3Infos中,方便之后的读取

音乐信息。

4.1.3音乐信息显示

@Override

public int getCount() {

return mList == null ? 0 : mList.size();

}

@Override

public Object getItem(int position) {

return mList.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder viewHolder=null;

if(convertView==null){

convertView=mInflater.inflate(https://www.doczj.com/doc/6613745098.html,yout.music_item,parent,false);

viewHolder=new ViewHolder(convertView);

convertView.setTag(viewHolder);

}else{

viewHolder= (ViewHolder) convertView.getTag();

}

Mp3Info mp3Info=mList.get(position);

viewHolder.getTitle().setText(mp3Info.getTitle());

viewHolder.getArtist().setText(mp3Info.getArtist());

viewHolder.getDuration().setText(getStandardTime(mp3Info.getDuration())); return convertView;

}

static class ViewHolder{

private TextView title;

private TextView artist;

private TextView duration;

private View root;

public ViewHolder(View root) {

this.root = root;

}

public TextView getTitle() {

if(title==null){

title= (TextView) root.findViewById(R.id.music_title);

}

return title;

}

public TextView getArtist() {

if(artist==null){

artist= (TextView) root.findViewById(R.id.music_artist);

}

return artist;

}

public TextView getDuration() {

if (duration==null){

duration= (TextView) root.findViewById(R.id.music_duration);

}

return duration;

}

自定义适配器LocalMusicAdapter 继承BaseAdapter并实现实现getCount()、getItem()、getItemId()、getView()等抽象方法。使用ViewHolder、convertView和setTag()进行ListView的优化。

ListView优化的实现原理:

ViewHolder:利用ViewHolder内部类,将item布局文件中需要展示的控件定义为属性(其实ViewHolder就是一个自定义的模型类)。这样就把item中散在的多个控件合成一个整体,这样可以有效地避免图片错位。

convertView:ListView的加载是一个item一个item的加载,这样就会每次都inflate一个item 布局,然后findViewById一遍该布局上的所有控件。当数据量大的时候,是不可想象的。而利用Recycle 回收利用就可以解决问题。所以要善于重复利用convertView,这样可以减少填充布局的过程,减少ViewHolder对象实例化的次数。减少内存开销,提高性能。

convertView的setTag():借助setTag()方法将ViewHolder持有者对象作为标签附加到convertView转换视图上,在convertView被重复利用的时候,由于上面有ViewHolder对象,所以

convertView就具有了ViewHolder中的几个属性,这样就节省了findViewById()这个过程。如果一个item有三个控件,如果有100条item,那么在加载数据过程中,就就相当于节省了几百次findViewById(),节约了执行findViewById()的时间,提升了加载速度,节省了性能的开销。

/**

* 时间的处理

* @param timestamp long精度的毫秒数

* @return 01:45格式的时长

*/

public String getStandardTime(long timestamp) {

SimpleDateFormat sdf = new SimpleDateFormat("mm:ss" , Locale.getDefault());

Date date = new Date(timestamp);

sdf.format(date);

return sdf.format(date);

}

利用SimpleDateFormat类进行简单快速的时间格式化,将毫秒时长转换成分秒形式的时长。

图4-1 本地音乐列表 4.2 音乐播放 4.2.1音乐点击实现

点击列表中的音乐选项,触发下述的监听事件: public interface OnItemClickedListener { /**

* LocalMusicFragment 的点击事件

* 需实现LocalMusicFragment.OnItemClickedListener 接口 * @param mp3Info 用户所点击的音乐得详细信息 */

void onMusicClick(Mp3Info mp3Info); }

在本地音乐碎片LocalMusicFragment 中自定义抽象接口OnItemClickedListener ,在此抽象接口 中定义抽象方法nMusicClick(Mp3Info mp3Info)(不需实现)。

@Override

public void onAttach(Activity activity) { super.onAttach(activity);

try {

mylistener = (OnItemClickedListener) getActivity();

} catch (ClassCastException e) {

e.printStackTrace();

}

}

在LocalMusicFragment中重写onAttach方法(此方法会在碎片附着Activity上时调用),将OnItemClickedListener接口的mylistener对象赋值。

@Override

public void onMusicClick(Mp3Info mp3Info) {

if (music_bar.getVisibility() == View.GONE) {

music_bar.setVisibility(View.VISIBLE);

}

if (mp3Info != null) {

PlayerService.cleanPosition();

currentMp3Info = mp3Info;

music_title.setText(mp3Info.getTitle());

music_artist.setText(mp3Info.getArtist());

music_state.setChecked(true);

}

}

在附着LocalMusicFragment的Activity中实现LocalMusicFragment.OnItemClickedListener接口,重写onMusicClick方法。若底端当前音乐播放详情music_bar未显示,则将其显示。将当前音乐详情附到music_bar的各个控件上,title上显示标题、artist显示作者,state显示状态。

4.2.2播放暂停实现

点击播放暂停按钮的监听事件:

public void initListener() {

music_state.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton compoundButton,boolean isChecked) { if (currentMp3Info == null) {//当前未选定播放音乐

ToastUtils.show(MainActivity.this, "当前未选定播放音乐");

compoundButton.setChecked(false);

return;

}

if (isChecked == false) {

MusicUtil.changeMusicState(MainActivity.this,

currentMp3Info.getUrl(), AppConstant.PlayerMsg.PAUSE_MSG);

} else {

MusicUtil.changeMusicState(MainActivity.this,

currentMp3Info.getUrl(), AppConstant.PlayerMsg.PLAY_MSG);

}

}

});

}

在music_state的CheckBox按钮上注册OnCheckedChangeListener监听器,重写onCheckedChanged 方法,当music_state的isChecked属性为false时,调用自定义类MusicUtild的方法changeMusicState启动PlayerService服务,使音乐播放在后台运行。

4.2.3音乐启动服务实现

本文自定义启动音乐服务的工具类:

public class MusicUtil {

public static void changeMusicState(Activity activity,String url,int type){

Intent intent = new Intent(activity, PlayerService.class);

Bundle bundle = new Bundle();

bundle.putString("url",url);

bundle.putInt("type",type);

intent.putExtras(bundle);

activity.startService(intent);

}

}

自定义类MusicUtild的静态方法changeMusicState启动PlayerService服务(实现代码的复用,避免大块的重复代码出现),activity表示后台服务service附着的活动,url表示音乐的路径,Type 表示音乐的状态PLAY_MSG是播放、PAUSE_MSG是暂停、STOP_MSG是停止。

4.2.4音乐服务的自定义

public class PlayerService extends Service {

private MediaPlayer mediaPlayer; //媒体播放器对象

private String path; //音乐文件路径

private static int position = 0; //音乐文件播放进度 @Nullable

@Override

public IBinder onBind(Intent intent) {//在绑定式服务时需要重写

return null;

}

@Override

public void onCreate() {

super.onCreate();

if (mediaPlayer == null) {

mediaPlayer = new MediaPlayer();

mediaPlayer.setLooping(false);//非循环播放

}

}

@Override//非绑定式服务时需重写

public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null && intent.getExtras() != null) {

Bundle bundle = intent.getExtras();

path = bundle.getString("url");

int type = bundle.getInt("type", 0);

switch (type) {

case AppConstant.PlayerMsg.PLAY_MSG:

play(position);

break;

case AppConstant.PlayerMsg.PAUSE_MSG:

pause();

break;

case AppConstant.PlayerMsg.STOP_MSG:

stop();

break;

}

}

return super.onStartCommand(intent, flags, startId);

}

private void play(int position) {

try {

mediaPlayer.reset();//把各项参数恢复到初始状态

mediaPlayer.setDataSource(path);//设置数据路径

mediaPlayer.prepare();//进行缓冲

mediaPlayer.setOnPreparedListener(new PreparedListener(position)); } catch (IOException e) {

e.printStackTrace();

}

}

private void pause() {

if (mediaPlayer != null && mediaPlayer.isPlaying()) {

position = mediaPlayer.getCurrentPosition();

mediaPlayer.pause();

}

}

private void stop() {

if (mediaPlayer != null) {

mediaPlayer.stop();

cleanPosition();

try {

mediaPlayer.prepare();

} catch (IOException e) {

e.printStackTrace();

}

}

}

@Override

public void onDestroy() {

super.onDestroy();

if (mediaPlayer != null) {

cleanPosition();

mediaPlayer.stop();

mediaPlayer.release();//释放资源

mediaPlayer = null;

}

}

/**

* 实现一个OnPrepareLister接口,当音乐准备好的时候开始播放

*/

private final class PreparedListener implements MediaPlayer.OnPreparedListener { private int positon;

public PreparedListener(int positon) {

this.positon = positon;

}

@Override

public void onPrepared(MediaPlayer mp) {

mediaPlayer.start(); //开始播放

if (positon > 0) { //如果音乐不是从头播放

mediaPlayer.seekTo(positon);

}

}

}

public static void cleanPosition() {

position = 0;

}

}

通过intent意图来接受音乐路径与音乐状态标志,实现OnPrepareLister接口,重写onPrepared(MediaPlayer mp)方法,传入媒体播放器对象MediaPlayer,用mediaPlayer.seekTo(positon);实现动态调整音乐进度。

重写onDestroy()清空音乐进度值,释放媒体播放器对象资源,将媒体播放器对象置空。

4.3音乐的切换暂停

通过点击列表实现音乐的切换暂停,在布局文件里的上一首、下一首按钮添加onClick属性,属性值为btnClick

public void btnClick(View v) {

switch (v.getId()) {

case R.id.music_pre:

localMusicFragment.musicPre();

break;

case R.id.music_next:

localMusicFragment.musicNext();

break;

case R.id.music_pattern:

ToastUtils.show(this, "长按切换播放模式");

break;

}

}

在布局所对应活动里创建方法btnClick(View v),根据不同的视图id调用不同的case分支。

public void musicNext() {

position++;

if (position >= mp3Infos.size()) {

position = 0;

}

Mp3Info mp3Info = mp3Infos.get(position);

listView.setSelection(position);

MusicUtil.changeMusicState(getActivity(), mp3Info.getUrl(), AppConstant.PlayerMsg.PLAY_MSG);

if (mylistener != null) {

mylistener.onMusicClick(mp3Info);

}

}

public void musicPre(){

position--;

if(position<0){

position=mp3Infos.size();

}

Mp3Info mp3Info = mp3Infos.get(position);

listView.setSelection(position);

MusicUtil.changeMusicState(getActivity(), mp3Info.getUrl(), AppConstant.PlayerMsg.PLAY_MSG);

if (mylistener != null) {

mylistener.onMusicClick(mp3Info);

}

}

定义在LocalMusicFragment的自定义方法实现音乐的上下首切换,利用if语句进行第一首的上一首和最后一首的后一首等特殊情况处理,在切换音乐后在listview列表视图中定位正在播放的音乐,使在播放的音乐必定在列表的可见范围中,利用MusicUtil的静态changeMusicState方法启动后台的音乐服务(若已存在则会调用服务的onStartCommand方法)。如果音乐播放器的的监听器非空,则调用其的onMusicClick方法并将当前播放的音乐信息作为参数传入。

4.4音乐播放模式的切换

通过点击列表实现音乐播放模式的切换,利用上下文菜单实现播放模式的切换,使用registerForContextMenu(music_pattern)方法在活动中注册上下文菜单。

@Override

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

menu.setHeaderTitle("播放模式");

menu.add(0, 1, Menu.NONE, "单曲播放");

menu.add(0, 2, Menu.NONE, "单曲循环");

menu.add(0, 3, Menu.NONE, "顺序播放");

menu.add(0, 4, Menu.NONE, "随机播放");

}

重写onCreateContextMenu方法,设置菜单标题,添加单曲播放、单曲循环、顺序播放和随机播放四个菜单项。

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()){

case 1:

ToastUtils.show(this, "单曲播放");

music_pattern.setImageResource(R.mipmap.pattern_none);

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

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

摘要 在如今这个生活节奏越来越快的社会,科技也随之发展的越来越智能化。而手机的智能化就是其中体现的一个方面,现在市场上比较主流的手机系统就是Android,苹果和w8。Android是一个开源的系统,它底层是基于Linux的操作系统。 本毕业设计的音乐播放器采用了Android开源系统技术,利用Java语言和EclipseJDK编辑工具对音乐播放器进行编写。同时也给出了比较详细的系统设计过程、部分界面图及主要功能运行流程图,本设计还对一些架构的和界面的高度过程中遇到的问题和解决方法进行了详细的讨论,还有一些开发过程中遇到的错误问题进行了举例。该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,有良好的性能,炫酷的播放界面。能在Android 手机系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式(单曲循环,单曲循环,顺序循环,顺序播放,随机播放)、以及歌词开闭状态等比较人性化的设置.该音乐播放器的名称是:“旋风播放器“,名字就和它的风格一样。 关键词:Linux操作系统;Android;流程图;音乐播放器;开源系统

Abstract In this increasingly fast pace of life society, science and technology also will be the development of more and more intelligent. The intelligent phone which reflects one aspect of the market is now more mainstream phone system is Android, Apple and W8. Android is an open source system, it is the underlying Linux-based operating system. The music player of the graduate design uses the Android open source technology, the use the Java language and EclipseJDK of editing tools to write the music player. But also gives a more detailed system design process, part of the interface map and main functions of a flowchart of the operation, the design of a high degree of process architecture and interface problems encountered and solutions are discussed in detail, as well as some development process errors encountered examples. The music player is set to play, pause, stop, previous one, the next song, lyrics display and other functions in one, good performance, cool player interface. Android mobile phone system can run independently. The player also has access to the phone file browser function, song playback mode (single cycle, single cycle, order cycle, the order of play, random play), as well as the opening and closing lyrics state humane set the music the name of the player: "whirlwind player", the name and its style. Key words: Linux operating system; Android; flowchart; music player; open source system

基于labview的音乐播放器设计

成绩: 《虚拟仪器技术及应用》 课 程 设 计 题目:基于LabVIEW的音乐播放器程序设计 学期:2013~2014学年第一学期 指导教师: 姓名: 学号: 年级、专业:

目录

基于LabVIEW的MP3程序设计 1程序设计背景 MP3是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号)对低频信号使用小压缩比,保证信号不失真。 MP3的工作原理:从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。 经过几年的发展MP3已经走进了千家万户,使用者也遍布各个年龄段和各个文化阶层。从最初的简单MP3播放器,到现在的手机,平板等便携设备自带的MP3播放器,MP3播放器已经走向大众,并演化为人们生活不可缺少的一部分,车上会有车载MP3,电脑手机平板上的MP3也是必不可少,总之,已经人们时时刻刻都已经在享受着MP3带来的快乐。 2程序设计思路 2.1程序整体设计思路 该虚拟仪器—MP3播放器,主要用于播放已存储计算机磁盘中的音乐文件。它是将播放器的系统装入计算机,以通用的计算机硬件及操作系统为依托,实现音乐功能的。VI程序设计里,默认容易识别的格式为WAV格式,所以在设计MP3时采取调用的方法,本系统主要利用labview的Activex,属性节点,调用节点,Eventstructure等控制实现的。MP3音乐播放器界面包括播放歌曲名字,播放路径以及停止按钮。 2.2程序流程设计 程序流程设计:设定路径,判定路径是否有效→无效报错;有效,执行下一阶段程序→调用媒体播放器,编写歌名显示和文件路径显示,设置停止功能按钮→程序结束。 本程序主要涉及到一下控件或结构的使用: (1)事件结构:包括一个或多个子程序框图或事件分支,结构执行时,仅有一个子程序

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

课程设计简易单片机音乐播放器

课程设计 题目:基于单片机音乐演奏曲Title: instrumental music based on single chip 姓名: 学号: 系别: 专业: 年级: 指导教师: 2012年5 月25 日

摘要 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本设计以At89c2051为核心,主要由电源电路、复位电路、音频放大电路、时钟电路和数码管电路和蜂鸣器电路构成单片机奏乐附加时钟的一个小系统。电路中I/O口采用分时复用的借口技术,使AT89c2051单片机的引脚资源得以充分利用,本系统的电路简单,实现的功能强大,所用芯片比较便宜,性价比较高。 关键词:At89c2051,数码管,单片机奏乐,分时复用

目录 摘要 ........................................................... - 1 - 1.引言 (3) 2.系统整体结构 (4) 2.1系统总设计 (4) 2.2实现的功能 (4) 2.3主要芯片介绍 (4) 2.3.1 AT89c2051芯片介绍 (4) 3.系统硬件设计 (5) 3.1键盘输入模块 (5) 3.2时钟模块 (5) 3.3显示模块 (6) 3.4复位电路 (6) 3.5蜂鸣器电路设计 (7) 4.系统软件设计 (7) 4.1系统主程序流程图系 (7) 4.2 部分子程序流程图 (8) 结束语 (10) 参考文献 (10) 致谢 (11) 附录 (11)

1.引言 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。 本次设计为单片机奏乐器,硬件部分它以单片机AT89C2051为核心,由功放电路、数码管等组成。当接上电源按下开关时,就能听到优美的旋律。当然这些音乐都是通过软件编程实现的,把它存储在存储器里,根据存储容量大小决定存储音乐的数目。 [2]

基于Android的日历系统的设计与实现毕业设计(论文)

华北电力大学本科毕业设计(论文) 毕业设计(论文) ` 题目基于Android的日历系统 的设计与实现 二○一四年六月

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/ 学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development

单片机课程设计报告简易音乐播放器

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1 需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。 (1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。 (2)复位电路部分当系统出现问题时可以重置系统,解决一些问题 (3)LED显示部分显示系统在各种不同条件下的状态 (4)89C52芯片整个设计的核心,接收和处理信号及程序 (5)按键电路部分作为系统的输入

本科毕业设计---基于android手机电子书阅读器的设计与实现

毕业设计 题目:手机电子书阅读器的设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

基于android平台的音乐播放器的设计与实现

嵌入式系统综合设计说明书 题 目:基于Android 的音乐播放器设计与实现 姓 名: 学 院:信息工程学院 班 级: 指导教师: 2012 年9 月24 日

摘要 Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。 关键词:android;音乐播放器;嵌入式;java

Abstract Android is a Linux-based open-source operating system, this article on the android platform design and realization of the music player, the use of the Java language and the Eclipse programming tools. Can be achieved through the design of the music playback, pause, previous song, next song, music list, sound control, the Help menu and other functions through the principle player in android platform-based design, and to understand the design of the music player realization of the related technology, to master the android programming ideas, as well as basic application components, great help later in the android development. Keywords: android; music player; embedded; java

本科毕业设计--基于android平台的手机应用软件设计与实现

安阳工学院 计算机科学与工程学院 JAVA程序设计课程综合项目报告 项目题目:基于Android平台的手机应用软件设计与实现专业班级:计算机科学与技术(信息技术)11-1 学生姓名:吕鹏 学生学号:201103010042 指导教师姓名:许研 2013年12月

摘要 随着IT技术的发展,移动开发已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。而在移动开发中,Android开发近些年来突飞猛进的发展,在智能手机领域中的市场份额以及超过80%。同样,基于安卓平台的手机应用开发也达到前所未有的高度,各种安卓手机应用软件竞相出现。本次的JAVA 课程设计将基于安卓的平台,因为安卓开发主要基于JAVA语言和XML语言。本次所做的手机应用软件,可实现系统的登录、计算器、打电话、发短信、上网等简单功能实现。在此系统的实现过程中不仅提高了JAVA语言编程,而且加入了Android的成分,提高了软件设计的兴趣性。 关键词:手机应用软件开发,Java程序设计语言,Android开发。

目录 摘要 (2) 第1章系统目标 (5) 第2章系统功能介绍 (6) 2.1系统功能总框图 (6) 2.2 模块功能介绍 (6) 2.2.1 登录模块功能介绍 (6) 2.2.2 等待模块功能介绍 (7) 2.2.3系统主界面模块功能介绍 (8) 2.2.4短信和拨号模块功能介绍 (8) 2.2.5计算器模块功能介绍 (9) 2.2.6网上冲浪模块功能介绍 (10) 第三章系统功能实现 (11) 3.1 系统登录模块设计 (11) 3.1.1 登录框布局设计 (11) 3.1.2 登录对话框设计 (13) 3.2 等待模块设计 (15) 3.3 系统主界面模块设计 (16) 3.3.1 主界面XML布局设计 (16) 3.3.2 主界面背景图片设计 (18) 3.3.3 主界面功能实现设计 (18) 3.4 短信和拨号模块设计 (20) 3.4.1短信功能实现设计 (20) 3.4.2 拨号功能实现设计 (22) 3.5 计算器模块设计 (22) 3.5.1 计算器界面设计 (22) 3.5.2 计算器功能实现设计 (22) 3.6 网上冲浪模块设计 (24) 3.6.1 网上冲浪模块XML布局设计 (24)

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

音乐播放器的设计与实现设计共19页文档

目录 一、前言 (1) 二、系统分析 (2) (一)系统需求分析 (2) (二)系统功能需求分析 (2) (三)业务流程分析 (3) 三、系统设计 (4) (一)总体设计 (4) (二)歌曲列表模块设计 (4) (三)播放控制模块设计 (4) (四)播放器设置模块设计 (4) (五)数据库设计 (4) 四、系统实现 (6) (一)主界面 (6) (二)播放列表 (12) (三)歌词显示界面 (13) (四)皮肤更换 (15) 五、软件测试 (16) (一)软件的测试 (16) (二)功能的测试与实现 (16) (三)测试结论 (17) 六、结论 (17) 参考文献 (18)

Android音乐播放器的设计与实现 (电子信息工程系软件技术111班王永军) 摘要:本论文的音乐播放器采用了Android开源系统技术,利用Java 语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。 关键词:Android;Java;Eclipse;音乐播放器 一、前言 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,苹果系统,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的播放

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

滨江学院 《移动通信程序设计》 课程设计 题目基于Android系统的音乐播放器 院系滨江学院 专业计算机科学与技术 学生姓名王兵 学号 二O一四年六月十日

摘要 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 目录 1前言........................................................... 1.1选题的背景及意义............................................. 1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 ..................................... 2.1开发应用技术介绍............................................. 2.2开发及运行坏境............................................... 3系统的分析..................................................... 3.1可行性分析................................................... 3.2常见的几种音频格式及其特点................................... 3.3需求分析..................................................... 4系统设计....................................................... 4.1系统概要设计................................................. 4.2系统功能设计及描述........................................... 5系统功能实现................................................... 5.1歌曲添加模块................................................. 5.2歌曲列表模块................................................. 5.3播放控制模块................................................. 5.4音量控制模块................................................. 5.5进度控制模块................................................. 5.6滚动字幕模块................................................. 5.7歌曲下载模块................................................. 5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

基于Android的校园新闻app开发毕业设计

毕业设计(论文)基于Android平台的校园新闻app的开发

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

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

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

一、实验要求: 本课程设计的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp 3,Wav 多种格式的音乐文件,能够控制播放,暂停,重播,停止,要求视觉外观美观,操作简单。 二,设计思想 首先查找相关书籍与文献,了解An droid 的构架并搭建An dr oid 开发平台。 查找相关资料,了解现阶段基于And roid 平台手机音乐播放器发展现状以及相关功能。 播放器基本拥有以下功能: 播放本地音乐文件 对播放的状态进行控制 播放设置,开始暂停停止 三,系统结构 ? 四、数据结构的说明和模块的算法流程图 运行 结束 暂停 开始 音乐播放器主界面 音乐播放器 设定 播放界面 开始 暂停 停止

五、使用说明书 菜单有6个功能:播放,暂停,停止,重播。 播放功能:点击后事件触发,传入歌曲名字,让程序操作该名字进行播放。 暂停功能:点击后事件触发,歌曲暂停播放。 停止功能:点击后事件触发,歌曲停止播放。 重播功能;点击后事件触发,歌曲重新播放。 六、运行结果和结果分析 作为Android平台上开发的应用软件,本设计具备与用户交互的界面,界面简洁美观易于操作。作为一款在线音乐客户端,提供给用户在线选歌的方便,提供在线播放歌曲的即时信息,如歌曲名,歌手名,时长等等。 七、我评价与总结 现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。本项目是一款基于Android手机平台的音乐播放器,使Android 手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。本设计实现的重要功能是播放Mp3格式的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。 八、附录 package com.example.seekbar; import android.app.Activity; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;

相关主题
文本预览
相关文档 最新文档