文档库 最新最全的文档下载
当前位置:文档库 › 音乐播放器的设计与实现设计共19页文档

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

音乐播放器的设计与实现设计共19页文档
音乐播放器的设计与实现设计共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的技术和其它在市场上的特点。

二、系统分析

(一)系统需求分析

1. 需求分析

本系统属于用户常用的音乐播放器。可以方便用户平时对音乐文件的操作。本系统应达到以下目标:

(1) 软件采用人机交互的方式,界面美观友好,操作灵活、方便、富有个性化。

(2) 能够对音乐文件进行有效的管理。

(3) 系统应最大限度地实现易维护性和易操作性。

2. 软件的可行性研究

(1)经济上的可行性

Android 是 Google 历经数年和投资数亿美元开发出来的智能手机系统,是基于Linux 内核的操作系统,是 Google 公司在 2007 年 11 月 5 日公布的手机操作系统。随着各大移动终端生产商大力开发和生产基于Android 的移动智能设备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android 平台的各类人才逐渐成为各大企业竞相争夺的焦点。而且Android 是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。

(2)技术上的可行性

Google发起了围绕Android的组织——开放手机联盟,其英文全称为“Open Hand set Alliance”。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层 Linux 内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以 Java 编写。

(3)操作上的可行性

本系统采用Android框架,可以在eclipse中安装Android开发插件,使用Android

模拟器也可以使用任意Android终端。模拟器和真正的Android手机没有太大区别,人们对手机操作早已熟悉。

(二)系统功能需求分析

1.用例图及用例描述

功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。用户需求文档描述了用户使用产品必须要完成的任务。针对音乐播放器分别对音乐播放功能进行详细的调研和分析,总结出如用户需求信息,其用例图如图2.1所示。

图2.1 播放器用例图

音乐播放器的用例描述如下:

(1) 用例名称:播放

参与者:用户

目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行

基本事件流:1.用户单击“播放”按钮

2.播放器将播放列表中的当前的歌曲

(2) 用例名称:暂停

参与者:用户

目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停

基本事件流:1.用户单击“暂停”按钮

2.播放器将暂停当前的歌曲

(3) 用例名称:上一首/下一首

参与者:用户

目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停

基本事件流:1.用户单击“上一首或下一首”按钮

2.播放器将播放上一首或下一首歌曲

(4) 用例名称:播放列表

参与者:用户

目标:使得用户可以进入播放清单

前置条件:程序在运行

基本事件流:播放器进入播放列表

(5) 用例名称:歌词显示

参与者:用户

目标:使得程序进入播放器歌词设置状态前置条件:程序运行在播设定界面

基本事件流:播放器显示或关闭歌词

2. 音乐播放器的时序图

播放器对象之间的交互情况如图2.2所示。

图2.2 音乐播放器的时序图(三)业务流程分析

播放器工作流程图如图2.3所示。

图 2.3 音乐播放器流程图

三、系统设计

(一)总体设计

根据播放器的实现目标,可获得播放器的基本需求,以下从不同角度来描述系统的需求,系统的功能需求,分成三部分来概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求,如图3.1所示为应用功能结构图分析:

图3.1 功能结构图

(二)歌曲列表模块设计

程序在初始化界面时,从系统数据库获得SD内所有音乐信息,将这些得到的信息构建到列表呈现给用户,流程如图3.2所示:

图3.2 歌曲列表模块流程图

(三)播放控制模块设计

播放控制模块是整个设计控制的核心部分,用户只需通过简单的触摸操作就可以实现对歌曲播放的控制,如图3.3所示:

图3.3播放控制模块流程图

(四)播放器设置模块设计

播放器设置包括播放器背景皮肤更换以及播放器定时睡眠,如图3.4所示:

图3.4 播放器设置模块流程图

(五)数据库设计

1. 数据库及字段属性设计

(1)字段设计(表、图)

file_table 主要是保存歌曲名字、类型、路径。

字段说明:Id 歌曲id号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表3.1、图3.5)

Android自带一个MediaStore封闭类专门来存储媒体信息,通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息。存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小 )(表3.2、图3.5)

图3.5 歌曲列表

图3.6 歌曲详细

(2)音乐播放器E-R图

音乐播放器 E-R图(图3.6)

图3.7 E-R图

2. 数据库连接

(1)创建数据库

Android 提供了标准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:

/**游标***/

private Cursor c = null;

/**建立表的语句**/

private static final String CREATE_TAB= "create table "+ "music(_id integer primary key autoincrement,music_id integer,clicks integer," +"latest text)";

/**列名***/

private static final String TAB_NAME = "music";

/**数据库***/

private SQLiteDatabase db = null;

/***构造函数**/

public DBHelper(Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

/***构造一个数据库,如果没有就创建一个数据库***/

@Override

public void onCreate(SQLiteDatabase db) {

this.db = db;

db.execSQL(CREATE_TAB);}

(2)操作数据库

Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都

必须指定一个Uri,才能对相应的表进行数据操作。

/**插入数据**/

public void insert(ContentValues values){

SQLiteDatabase db = getWritableDatabase();

db.insert(TAB_NAME, null, values);

db.close();

/*** 更新数据*/

public void update(ContentValues values,int id){

SQLiteDatabase db = getWritableDatabase();

db.update(TAB_NAME, values, "music_id="+id, null);

db.close();

/**删除数据*/

public void delete(int id){

if (db == null){

db = getWritableDatabase();

db.delete(TAB_NAME, "music_id=?", new

String[]{String.valueOf(id)});}

(3)数据显示

程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日志显

示出来

/***查找数据*/

public Cursor query(int id){

SQLiteDatabase db = getReadableDatabase();

c = db.query(TAB_NAME, null, "music_id=?", new

String[]{String.valueOf(id)}, null, null, null);

db.close();

return c;

四、系统实现

(一)主界面

Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码:

Public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/3014409173.html,yout.main); }

该方法主要执行界面的初始化操作,Activity有个设置布局的方法:

Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为main。

欢迎界面结束以后进入主界面图4.1所示, 主界面主要采用相对布局(RelativeLayout)。

图4.1 主界面

部分布局代码如下:

android:id="@+id/rl_player_topbar"

android:layout_width="fill_parent"

android:layout_height="50dp"

android:layout_alignParentTop="true"

android:background="@drawable/bg_media_library_topbar">

android:id="@+id/ibtn_player_list"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_margin="5dp"

android:background="@drawable/player_btn_list"/>

android:id="@+id/tv_player_song_info"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_toLeftOf="@+id/ibtn_player_voice"

android:layout_toRightOf="@id/ibtn_player_list"

android:ellipsize="marquee"

android:focusable="true"

android:focusableInTouchMode="true"

android:gravity="center_horizontal"

android:lines="1"

android:marqueeRepeatLimit="marquee_forever"

android:singleLine="true"

android:text="显示歌名"

android:textColor="@android:color/white"

android:textSize="19sp"

android:textStyle="bold"/>

android:id="@+id/tv_player_singer_info"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/tv_player_song_info"

android:layout_centerHorizontal="true"

android:layout_toLeftOf="@+id/ibtn_player_voice"

android:layout_toRightOf="@id/ibtn_player_list"

android:ellipsize="marquee"

android:focusable="true"

android:focusableInTouchMode="true"

android:marqueeRepeatLimit="marquee_forever"

android:paddingLeft="71dip"

android:singleLine="true"

android:text="显示歌手"

android:textColor="@android:color/white"

android:textSize="15sp"/>

android:id="@+id/ibtn_player_voice"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:background="@drawable/player_btn_voice"/>

1. 播放音轨SeekBar

在main.xml文件中,SeekBar的代码如下:

android:id="@+id/sb_player_voice"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_toLeftOf="@id/iv_player_max_voice"

android:layout_toRightOf="@id/iv_player_min_voice"

android:background="@drawable/voice_seekbar_bg"

android:paddingLeft="5dp"

android:paddingRight="5dp"

android:progressDrawable="@drawable/voice_seekbar_progress"

android:thumb="@drawable/voice_seekbar_thumb"/> 上面代码中有参数android:thumb="@drawable/ voice_seekbar_thumb"为音轨游标的图片资源android:progressDrawable="@drawable/ voice_seekbar_progress "为SeekBar 条的风格style。引用了drawable中的voice_seekbar_progress.xml文件,

voice_seekbar_progress.xml是自定义的配置文件,代码如下:

xmlns:android="http://schemas.android/apk/res/android">

android:drawable="@drawable/voice_seekbar_bg">

播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度(图4.2)。

图4.2 播放音轨

音轨对象SeekBar部分代码如下:

private void ShowSeekBar() {

seekbar.setOnSeekBarChangeListener(new

OnSeekBarChangeListener() {

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

if (fromUser) {

seekbar_change(progress);

}else if (seekBar.getId() == R.id.sb_player_voice) {

// 设置音量

am.setStreamVolume(AudioManager.STREAM_MUSIC,

progress, 0);

* 进度条改变事件

private void seekbar_change(int progress) {

Intent intent = new Intent();

intent.setAction("com.app.media.MUSIC_SERVICE");

intent.putExtra("op", PROGRESS_CHANGE);

intent.putExtra("progress", progress);

startService(intent);

2. 播放调节功能实现

各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。用的是布局中的线性布局LinearLayout,;将其设置为水平,如图4.3所示:

图4.3 播放功能按钮

LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性。配置文件代码结构如下:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_toLeftOf="@id/ibtn_player_control_mode" android:layout_toRightOf="@id/ibtn_player_control_menu"

android:gravity="center"

android:orientation="horizontal">

android:id="@+id/ibtn_player_control_pre"

android:layout_width="75dip"

android:layout_height="58dip"

android:background="@drawable/player_btn_player_pre"/>

android:id="@+id/ibtn_player_control_play"

android:layout_width="75dip"

android:layout_height="58dip"

android:background="#00000000"/>

android:id="@+id/ibtn_player_control_next"

android:layout_width="75dip"

android:layout_height="58dip"

android:background="@drawable/player_btn_player_next"/>

主要按钮功能实现代码:

(1)“上一首”按钮并实现功能:

private void ShowLastBtn() {

last_btn.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

lastOne();

* 上一首

private void lastOne() {

if (_ids.length == 1 || loop_flag == LOOP_ONE) {

position = position;

Intent intent = new Intent();

intent.setAction("com.app.media.MUSIC_SERVICE");

intent.putExtra("length", 1);

startService(intent);

play();

return;

if (random_flag == true) {

if (randomNum < _ids.length - 1) {

randomIDs[randomNum] = position;

position = findRandomSound(_ids.length);

randomNum++;

} else {

randomNum = 0;

for (int i = 0; i < _ids.length; i++) {

randomIDs[i] = -1;

randomIDs[randomNum] = position;

position = findRandomSound(_ids.length);

randomNum++;

} else {

if (position == 0) {

position = _ids.length - 1;

} else if (position > 0) {

position--;

stop();

setup();

play();

(2)“播放”按钮并实现功能:

private void ShowPlayBtn() {

play_btn.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

switch (flag) {

case STATE_PLAY:

pause();

break;

case STATE_PAUSE:

play();

break;

(3)“下一首”并实现功能:

private void ShowNextBtn() {

next_btn.setOnClickListener(new OnClickListener() { @Override

public void onClick(View v) {

nextOne();

* 下一首

public void nextOne() {

if (_ids.length == 1 || loop_flag == LOOP_ONE) { position = position;

Intent intent = new Intent();

intent.setAction("com.app.media.MUSIC_SERVICE");

intent.putExtra("length", 1);

startService(intent);

play();

return;

if (random_flag == true) {

if (randomNum < _ids.length - 1) {

randomIDs[randomNum] = position;

position = findRandomSound(_ids.length);

randomNum++;

} else {

randomNum = 0;

for (int i = 0; i < _ids.length; i++) {

randomIDs[i] = -1;

randomIDs[randomNum] = position;

position = findRandomSound(_ids.length);

randomNum++;

} else {

if (position == _ids.length - 1) {

position = 0;

} else if (position < _ids.length - 1) {

position++;

stop();

setup();

play();

(二)播放列表

歌曲列表显示界面如图4.4:

图4.4 歌曲列表

ListView有一个监听器new onItemClickListener(){public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {}},我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过ListView.getItemAtPositon(int position)得到该行上的信息。这样就可以通过Intent 将数据传入到其它的Activity。代码如下:

menulist.setOnItemClickListener(new OnItemClickListener() { @Override

public void onItemClick(AdapterView parent, View view,int position, long id) {

xfdialog.cancel();

xfdialog.dismiss();

if (position==0) {

playMusic(num);

}else if (position==1) {

SetRing();

}else if (position==2) {

ShowMusicInfo(num);

歌曲列表界面的添加一个ListView控件:

android:id="@+id/rl_parent_cotent"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/bg_media_library"

android:orientation="vertical">

android:id="@+id/local_music_list"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1"

android:background="@drawable/bg_media_library"

android:cacheColorHint="#00000000"

android:divider="#b5b5b5"

android:listSelector="#00000000"

android:dividerHeight="1dp"

android:fadingEdge="none"

android:fastScrollEnabled="false">

(三)歌词显示界面

当播放音乐文件时,如果同时存在该歌曲的LRC格式的歌词文件时,系统会自动匹配歌词并且达到同步显示的效果,如图4.5所示:

图4.5歌词显示

1.读取歌词文件的内容

private void read(String path) {

lrc_map.clear();

TreeMap lrc_read = new

TreeMap();

String data = "";

BufferedReader br = null;

File file = new File(path);

System.out.println(path);

/**如果没有歌词,则用没有歌词显示**/

if (!file.exists()) {

Animation lrcanim=AnimationUtils.loadAnimation(context, R.anim.album_replace);

lrcTextview.setText(R.string.no_lrc_messenge);

lrcTextview.startAnimation(lrcanim);

return;

FileInputStream stream = null;

try {

stream = new FileInputStream(file);

br = new BufferedReader(new

InputStreamReader(stream, "UTF-8"));//记得歌词一定要设置UTF-8,

否则歌词编码直接乱码喔。

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

2.解析歌曲时间处理类:

while ((data = br.readLine()) != null) {

if (data.length() > 6) {

if(data.charAt(3) == ':'&& data.charAt(6) == '.') {// 从歌词正文开始

data = data.replace("[", "");

data = data.replace("]", "@");

data = data.replace(".", ":");

String lrc[] = data.split("@");

String lrcContent = null;

if (lrc.length == 2) {

lrcContent = lrc[lrc.length - 1];// 歌词

} else {

lrcContent = "";

for (int i = 0; i < lrc.length - 1; i++) {

String lrcTime[] = lrc[0].split(":");

int m = Integer.parseInt(lrcTime[0]);// 分

int s = Integer.parseInt(lrcTime[1]);// 秒

int ms = Integer.parseInt(lrcTime[2]);// 毫秒

int begintime = (m * 60 + s) * 1000 + ms;// 转换成毫秒

LRCbean lrcbean = new LRCbean();

lrcbean.setBeginTime(begintime);// 设置歌词开始时间

lrcbean.setLrcBody(lrcContent);// 设置歌词的

主体

lrc_read.put(begintime, lrcbean);

stream.close();

} catch (IOException e) {

e.printStackTrace();

// 计算每句歌词需要的时间

lrc_map.clear();

data = "";

Iterator iterator = lrc_read.keySet().iterator();

LRCbean oldval = null;

int i = 0;

while (iterator.hasNext()) {

Object ob = iterator.next();

LRCbean val = lrc_read.get(ob);

if (oldval == null) {

oldval = val;

} else {

LRCbean item1 = new LRCbean();

item1 = oldval;

item1.setLineTime(val.getBeginTime() - oldval.getBeginTime());

lrc_map.put(new Integer(i), item1);

i++;

oldval = val;

3.获得歌词和时间并返回的类:

public class LRCbean {

private int beginTime = 0;//开始时间

public int getBeginTime() {

return beginTime;

public void setBeginTime(int beginTime) {

this.beginTime = beginTime;

public int getLineTime() {

return lineTime;

public void setLineTime(int lineTime) {

this.lineTime = lineTime;

public String getLrcBody() {

return lrcBody;

public void setLrcBody(String lrcBody) {

this.lrcBody = lrcBody;

private int lineTime = 0;

private String lrcBody = null;//歌词实体

(四)皮肤更换

皮肤更换界面如图4.6所示:

图4.6皮肤设置

部分代码如下:

public class SkinSettingActivity extends SettingActivity { private GridView gv_skin;

private ImageAdapter adapter;

private Setting mSetting;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/3014409173.html,yout.skinsetting);

resultCode=2;

setBackButton();

setTopTitle(getResources().getString(R.string.skin_settings));

mSetting=new Setting(this, true);

adapter=new ImageAdapter(this, mSetting.getCurrentSkinId());

gv_skin=(GridView)findViewById(R.id.gv_skin);

gv_skin.setAdapter(adapter);

gv_skin.setOnItemClickListener(new OnItemClickListener() { @Override

public void onItemClick(AdapterView parent, View view, int position,long id) {

//更新GridView

adapter .setCurrentId(position);

//更新背景图片

SkinSettingActivity.this .getWindow().setBackgroundDrawableResourc e(Setting.SKIN_RESOURCES [position]);

//保存数据

mSetting .setCurrentSkinResId(position);

protected void onResume() {

super .onResume();

// 设置皮肤背景

Setting setting = new Setting(this , false );

listview .setBackgroundResource(setting.getCurrentSkinResId());//这里我只设置listview 的皮肤而已。

五、软件测试

(一) 软件的测试

一个程序并不可能达到十分完美,难免存在一些错误。如果不能及时将其找出并修改,会造成系统崩溃并造成不必要的损失。通过软件测试,尽可能多的找出系统中的错误,以便于及时修改。

(二) 功能的测试与实现

1. 播放器整体功能的实现

音乐乐播放器在模拟器运行情况如图5.1:

图5.1 播放器运行界面图

播放器整体功能,主要是针对播放器的播放功能,上一首,下一首选择及媒体格式的支持等,表5.1为播放器的整体功能测试结果

表5.1 播放器整体功能测试结果

2. 播放器主要模块功能测试 播放器的主要模块功能测试,主要是对用户图形界面模块,歌词同步显示模块等功能进行了测试。测试结果如表5.2

表5.2 播放器主要模块功能测试结果

测试模块

测试结果 用户图形界面

皮肤更换

能友好的与用户交互 能进行皮肤更换 歌词同步显示 能准确的与歌曲同步

测试内容

测试结果 播放控制

能正确的完成播放、暂停、进度条的拖动功能 格式支持

支持MP3格式 上、下首歌曲的选择

能正确的选择“上一曲”,“下一曲”

(三)测试结论

通过相关的系统功能测试表明,该音乐播放器能播放MP3格式的音乐文件,能正确的响应用户对其基本功能的控制,基本满足了音乐播放器的要求。

六、结论

通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表组成。这两个个模块完成,音乐播放器就能初具规模。而其它的功能都是在这两个模块的基础上去补充添加的,这是功能的确是必不可少的功能,否则就不具备音乐播放器的基本功能了。

音乐播放器软件实现了播放器的基本功能:播放,暂停、上/下一首、歌曲列表浏览等功能。运用的系统平台是现今最热门的Android系统,是一个开源的基于Linux系统的手机平台。是以Java语言编写SQLite数据库支持SharePreference配置文件的组合方式进行数据管理,实现了音乐播放器的系统编程。

本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclipse+Java语言的支持,Android Development Tool的插件,和Android SDK 2.3.3版本的全面结合,才使整个音乐播放器系统得以实现。

在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。我们在着手开发之前不要急于编程,先应有较长的时间去把分析做好,写出相关的开发文档等。然后再开始编写程序代码,这样做到每写一步代码心底有数,有条不絮。还有后续的系统测试,要能灵活利用各种软件测试模型,最大的优化软件。

这个音乐播放器的开发已经结束,尽管是在整个开发过程中,走了不少弯路,犯了许多错误,但是吃一堑长一智,以后的工作中应该有了经验教训。

总之,经过几个月的Android系统技术知识的学习和对音乐播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,同时也对整个软件产品的实现流程有了一个深入的了解,这对我以后从事软件开发有很大的帮助。

参考文献

[1] 李维勇:Android任务驱动式教程,北京航空航天大学出版社

[2] Shawn Van Every:Anddoid多媒体开发高级编程,清华大学出版社

[3] 张亦辉、冯华、胡洁:Java面向对象程序设计,人民邮电出版社

[4] Andy Yue(美)、许万里、钱江:软件开发技能实训教程技术文档篇,科学出版社

音乐播放器毕业设计

摘要 在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于Java Applet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和 Applet的工作原理,最后说明系统需要实现的功能。 音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。 本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。 关键词: JAVA;Eclipse;模块化; Applet;

Abstract In the information,the rapid development of technology today,the multimedia technology is becoming more and more attention.This paper makes comparison of the detail to the current use of more music player.By reading a plurality ofliterature,analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player.This paper mainly introduces the design of a Java based Applet to achieve music player.And the key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of Java technology and Applet,finally indicated that the system needs to realize the function. The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the au thor's life experiences and feelings. A good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation. The player is using java language and eclipse editing tools. Giving a detailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. The music player set to play, pause, stop, fast forward, rewind, a nd the next one, on a volume adjustment functions with one good performance. Th e player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the dev elopment process is Waterfall model. The first phase is the project of comprehensi ve and careful needs analysis, accurately making the project schedule and clearin g each stage of the task. The second phase of the project is sub-module coding. T he third stage, the project testing and system integration testing. key words:JAVA ;Eclipse;Modularization; Applet;

音乐播放器设计实习报告

《.net技术》实习报告带智能关机和查看日历功能的音乐播放器设计班级:指导老师: 姓名:学号: 设计时间:

正文开始 设计目的: 很多人在使用播放器的时候下载的播放器软件总是比较大,一般软件较大的打开就会比较慢,运行起来也没较小的软件运行的更“流畅“。而且当我们使用播放器的时候或是只用电脑的时候我们有时会忘记关掉电脑就离开或是睡着了!虽然电脑自带的操作系统也可以设置定时关机但比较麻烦,对电脑初学者更是不知道怎么使用操作系统设置定时关机啦!还有就是我们电脑桌面下的时钟一般只显示了几点钟,并没有显示今天是多少号,所以在影月播放器中添加一个可以查看日历的功能是很必要的! 实现的功能: 在这里我就为大家设计一款小巧的音乐播放器,同时还带有智能关机功能,所谓智能关机就是你想怎么时候关机就什么时候关机,你想立刻关机就立刻关机,想定时关机就可以自己设置关机时间,设置方法非常的简单啦。同时你只需要单击一下一个“三角图标键”(在下面还将结合图示提到)就可以看到日历表了,在日历表里你也可以选择查看你需要的那个月的日历表。同时我也在播放器中添加了显示现在时钟的功能。 下面介绍一下我设计的播放器的所有功能:首先你可以通过“添加文件夹”按钮添加你选择的文件夹内的所有音频文件,你也可以通过“添加文件”按钮单个添加你所要添加的音频文件,具体方法在下面我会给出截图加以说明,保证一看就懂,就会用。添加音乐文件后你就可以在你的播放列表里看到你添加的歌曲名了。你可以通过双击列表中的歌曲名进行播放你双击的歌曲或者单击选中列表中歌曲名后再单击播放按钮进行播放。在播放时你可也看到正在播放的歌曲名和播放进度,这里的播放进度使用显示正在播放的歌曲“已经播放了多长时间”和这首歌要播放的“总时间”,还有就是上一曲、暂停、下一曲、停止,除实现播放的基本功能外,还有一个功能那就是我在上面给大家提到的“智能关机” 物体规则震动发出的声音称为“音乐”,由有组织的乐音来表达人们思想感情、反映现实生活的一种艺术就是音乐,音乐是一种符号,声音符号,表达人的所思所想,音乐能表达一个人的内心世,界音乐能是人快乐,能使人放松心情。为了方便人们能够听到美丽的音乐,音乐播放器就成为我们的音乐大师了。 设计好的播放器运行时如下图:

音乐播放器的详细设计

音乐播放器详细设计 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 需求概述

嵌入式MP3播放器的设计

嵌入式MP3播放器的设计 1 系统概述 本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。 MP3播放过程是STM32通过SPI1接口将数据从SD卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI接口,以减小干扰和噪声、提高音质。 2 系统硬件设计方案 本系统在硬件上分为6个模块: 微控制器STM32F103、解码模块VS1003、存储模块SD卡、触摸屏、USB接口和显示屏LCD。系统硬件框架如图5所示。 VS1003 STM32 图5 系统硬件框架图 2.1 存储模块设计 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD卡支持两种总线方式: SD方式与SPI方式。其中SD 方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。 在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。 PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通

基于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

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.wendangku.net/doc/3014409173.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

音乐播放器的设计与实现

德州学院信息管理学院 课程设计报告实习名称课程设计2 设计题目Android音乐播放器的设计与实现实习时间 专业班级12级计算机科学与技术 指导老师刘想 教学单位(盖章) 小组成员分工情况: 学号姓名分工 3018 周生明音乐播放的设计与实现1052曹法瑞 1040 张正奎 1055 李元华 2049 王山 二〇一五年六月三十日

目录 摘要 ................................................................................................................ 错误!未定义书签。 1 引言 ............................................................................................................ 错误!未定义书签。 2 可行性分析................................................................................................. 错误!未定义书签。 2.1 技术可行性...................................................................................... 错误!未定义书签。 2.2 经济可行性...................................................................................... 错误!未定义书签。 2.3 管理可行性...................................................................................... 错误!未定义书签。 2.4 可行性分析结论.............................................................................. 错误!未定义书签。 3 系统需求分析............................................................................................. 错误!未定义书签。 3.1 功能分析.......................................................................................... 错误!未定义书签。 3.2 数据流程分析.................................................................................. 错误!未定义书签。 4 系统功能设计............................................................................................. 错误!未定义书签。 4.1 播放器功能结构.............................................................................. 错误!未定义书签。 4.1.1 播放器主界面功能模块....................................................... 错误!未定义书签。 4.1.2 播放器菜单功能模块........................................................... 错误!未定义书签。 4.2 播放器功能流程.............................................................................. 错误!未定义书签。 5 系统实现..................................................................................................... 错误!未定义书签。 5.1 播放器主界面功能列表.................................................................. 错误!未定义书签。 5.2 播放器基本功能的实现.................................................................. 错误!未定义书签。 5.3 播放列表的实现.............................................................................. 错误!未定义书签。 6 软件测试与验证......................................................................................... 错误!未定义书签。 6.1 软件测试的目的.............................................................................. 错误!未定义书签。 6.2 软件测试的方法.............................................................................. 错误!未定义书签。 6.3 软件测试环境.................................................................................. 错误!未定义书签。 6.3.1 android模拟器 ...................................................................... 错误!未定义书签。 6.3.2 真机测试............................................................................... 错误!未定义书签。 6.4 软件测试流程与结果评估.............................................................. 错误!未定义书签。 6.4.1 测试流程............................................................................... 错误!未定义书签。 6.4.2 结果评估............................................................................... 错误!未定义书签。

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 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格式的视频文件。此外,还能支持中文、英文等语言界面。

(完整版)基于单片机的MP3播放器设计毕业设计论文

基于单片机的MP3播放器设计 音频信号数字化后所面临的一个不容忽视的问题是:巨大的数据量给存储和传输带来的压力。因此音频压缩技术在广播专业领域、网络传输及多媒体应用中受到广泛关注,成为音频信号处理的关键技术之一。MPEG(Moving Picture Experts Group)运动图像专家组,在1992年底制定了第一个世界范围的Hi-Fi(High-Fidelity)质量的音频编码标准MPEG-1。MPEG-1分为三种不同的方式,称为Layer1、Layer2和Layer3。序号越高,复杂性越大,但是可提供更好的编码效率,特别是在低比特率时。MP3就是MPEG-1 Layer3,是基于感知编码的算法,目前在CD 音质的声音压缩方面,是一种通用的方法。使用MP3标准对于音频数据编码既可以获得较大的音频数据压缩比,又可以得到较好的音乐回放质量。MP3的解码器结构复杂,涉及到大量的数学计算,对处理器与内存的要求相当高。目前,AT89C51处理器以其高性价比,丰富的外设资源,越来越受到各种嵌入式研发人员的青睐[5-7]。基于以上背景,我在此次设计中提出了AT89C51SND1C微处理器的软件解码方案,在降低硬件成本的基础上保证高质量的播放效果。 1.2.2 课题研究的意义 MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改本课题来源于生产实践

善MP3的音质是最关键的,也是亟待解决的问题。 MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样化。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。 另外一个原因是近年来,嵌入式系统与单片机开发的有机结合,已广泛被应用于网络通信、工业控制、机顶盒、PDA等诸多领域[8]。本文提出了一种基于单片机的MP3播放器的设计方案,这就进一步的体现了该设计的灵活性。目前该设计方案已经实现,实践证明,此播放器拥有市面MP3所有的全部功能并能够很好的运行。 MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、DA转换及音频输入。存储器可以是Flash 存储器或硬盘。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。尽管MP3音乐是有损的,它在压缩过程中对功率谱较弱的信号有所丢失,但它同CD原声区别不大,不影响一般音乐爱好者对音乐的欣赏。MP3大大缩小了声音文件的长度,使音乐的存储和传输更方便。 2 MP3的编解码过程 2.1 MP3的工作原理 一个完整MP3播放器要分几个部分:中央处理器、解码器、存储设备、主机通讯端口、音频DA和功放、显示界面和控制键、其中中央处理器和解码器是整个系统地核心。这里的中央处理器我们通常成为MCU (单片微处理器),简称单片机。它运行MP3的整个控制程序,也称为fireware(或者固件程序)。控制MP3的各个部件的工作:从存储设备读

基于单片机音乐播放器课程设计报告书

目录 第一章绪论 (1) 第二章音乐播放器主要器件相关知识介绍 (2) 2.1 AT89C51 (2) 2.2 LCD 显示器 (4) 2.3 喇叭 (5) 2.4 键盘 (5) 第三章音乐播放器设计原理 (6) 3.1 单片机发声的基本原理 (6) 3.2 设计的相关音乐说明 (7) 3.3 音乐播放器设计功能说明 (7) 3.4 设计结构框图 (9) 3.5 主程序控制的工作流程图 (10) 3.6 播放音乐的主程序 (11) 设计心得 (15) 参考文献 (15)

第一章绪论 二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭

环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。 设计指标: (1)设计一个(4×4)的键盘,并将16个键设计成16个音; (2)可弹奏想要表达的音乐; (3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。 设计要求: (1)按设计指标进行电路设计; (2)列出音阶与单片机定时器输出频率关系表格; (3)制作符合设计指标的硬件电路。

设计文档 (AW音乐播放器)

2015年华北五省(市、自治区)及港澳台大学生计算机应用大赛移动终端应用创意与程序设计 (应用类样例) 【项目名称】AW音乐所在学校:天津商业大学宝德学院所在赛区:天津赛区 团队名称:三个臭皮匠 团队成员:安兴悦王璐瑶王鹤 提交日期:2015.10.12

目录 一、作品概述 (1) 二、作品可行性分析和目标群体错误!未定义书签。 (1)可行性分析 ...... 错误!未定义书签。(2)目标群体 .......... 错误!未定义书签。 三、作品功能与原型设计 (2) (1)功能概述: (2) (2)原型设计 (3) 四、作品实现、难点及特色分析 (5) (1)作品实现及难点 (5) (2)特色分析 (5) 五、团队介绍和人员分工 (5) 六、其他 (6) 七、致谢 (6)

一、作品概述 在这个互联网普及的时代,人们对于手机功能的应用除了打电话、发短信之外,更多的是以娱乐形式来放松自我。这便成为了我们决定设计这款手机音乐软件的主要原因。 我们开发的这款手机音乐软件以“私人订制”与“休闲娱乐”为主题设计,无论你是清纯学院风还是韩系欧美范,我们都会为您呈现一份独家定制只属于你的音乐体验,让用户在专属的界面中感受到我们这款音乐软件带来的恬静、放松。 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在市场上主要有三个手机操作系统——Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上又有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的音乐播放器.现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,可以播放本地的MP3音乐,也可以播放在线的MP3音乐。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使本人更加熟练Android的技术和它在市场上的特点。 Android是一个开源系统技术,它底层是基于Linux操作系统,本音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面截图以及主要功能运行流程图,还对开发过程中遇到的问题和解决方法进行了详细的讨论。该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示、在线播放、音乐下载等功能于一体,性能良好,在Android系统中能独立运行。MP3的全名是MPEG Audio Layer-,是一种声音文件的压缩格式,由于本播放器只限于应用层的探讨,所以对具体的压缩算法不作深究。 二、作品可行性分析和目标群体 (1)可行性分析

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

学生毕业设计报告 设计题目:基于51单片机音乐播放器设计

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

作者签名:日期:

毕业设计任务书 专业班级姓名 一、课题名称:基于51单片机的音乐播放器设计 二、主要技术指标:1、AT89c51的输入电压:DC+5V 2、4k字节在系统编程(ISP) Flash 闪速存储器 3、128*8字节内部RAM 4、32个可编程I/O口线 5、2个16位定时/计数器 三、工作内容和要求:1、播放时显示歌曲序号(或名称) 2、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,演奏乐曲。 3、可通过功能键选择乐曲,暂停,播放 4、按顺序从头至尾自动循环播放全部设置的乐曲 5、按规范要求写出论文说明书 四、主要参考文献:[1]胡汉才. 单片机原理及其接口技术(第2版)[M]. 北京:清华大学出版社,2003 [2]孙涵芳.MCS-51系列单片机原理及应用[M].北京:北京航空航天大学出版社,1996.4 [3]阎石.数字电子技术基础(第三版)[M].北京:高等教育出版社,1989 [4]王晓君,安国臣.MCS-51及兼容单片机原理与选型[M] .北京:电子工业出版社,2003 [5]马家辰,孙玉德,张颖.MCS-51单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,2001 [6]林凌,李刚,丁茹,李小霞. 新型单片机接口器件与技术[M]. 西安:西安电子科技大学出版社,2005 学生(签名)年月日 指导教师(签名)年月日 教研室主任(签名)年月日 系主任(签名)年月日

在线音乐播放系统详细设计

<在线音乐播放系统> 详细设计说明书 作者: 完成日期: 签收人: 签收日期: 修改情况记录:

1 引言 1.1 编写目的 为软件开发人员在编码的过程中有所依据和参考。 面向人员:程序开发人员 1.2 背景 说明: a.待开发的软件系统的名称:在线音乐播放系统 b.列出本项目的任务提出者:北软老师 c.开发者:邓凯 d.用户:广大互联网用户 e.将运行该项软件的单位:web服务器 1.3 定义 OMS :Online music system,在线音乐播放系统。 1.4 参考资料 列出要用到的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.在线音乐播放系统概要设计.doc; c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 程序系统的结构 本程序主要采用四层结构,如下所示: 图1 系统结构示意图

3 程序(标识符)设计说明 3.1 在线音乐网络爬虫设计说明: 资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资源,为系统设计了一款针对互联网上音乐资源的网络爬虫。 3.1.1爬虫的原理: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1)对抓取目标的描述或定义; (2)对网页或数据的分析与过滤; (3)对URL的搜索策略。 3.1.2在线音乐播放系统爬虫的设计: 与通用爬虫不同,在线音乐播放系统爬虫只针对https://www.wendangku.net/doc/3014409173.html,音乐频道 https://www.wendangku.net/doc/3014409173.html,音乐频道,针对MP3格式的资源。 3.1.3爬虫的流程图:

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

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过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)按键电路部分作为系统的输入

相关文档
相关文档 最新文档