基于android平台的音乐播放器开发
实验报告
****      ***   
学    号:      ************
班    级:      计自1201
第一章 引 言
1.1 项目背景
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。
Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。
1.2 编写目的
现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。
我的祖国诗朗诵配乐本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。
1.3 开发环境
Eclipse、Android SDK 3.2.0
第二章 系统需求分析
2.1 功能需求(用例图分析)
根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述:
2.1.1 播放器的用例图
假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下
2.1  播放器基本用例图
2.1.2用例分析
用例名称:启动软件
参与者:用户
目标:使得用户启动软件并加载手机和sd卡上的音频文件到播放列表
metro乐队
前置条件:无
基本事件流:1.用户启动软件
            2.播放器将播放列表中的当前的歌曲
用例名称:播放
参与者:用户
目标:使得用户可以播放在播放列表中选中的歌曲
前置条件:播放器正在运行
基本事件流:1.用户单击“播放”按钮
            2.播放器将播放列表中的当前的歌曲
用例名称:暂停
参与者:用户
目标:使得用户可以暂停正在播放的歌曲
前置条件:歌曲正在播放且未停止和暂停
基本事件流:1.用户单击“暂停”按钮
            2.播放器将暂停当前的歌曲
用例名称:停止
参与者:用户
目标:使得用户可以停止正在播放的歌曲
前置条件:歌曲正在播放或暂停
基本事件流:1.用户单击“停止”按钮
            2.播放器将停止当前播放的歌曲
用例名称:退出
参与者:用户
目标:使得用户退出或者后台播放音乐
前置条件:程序在运行
基本事件流:1.用户按返回键
            2.播放器退出或者进入后台播放
第三章 概要设计
3.1软件播放流程图
Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.
Step2.点击列表的歌曲名字。
Step3.播放音乐。
Step4.点击暂停,音乐暂停
Step5.点击播放 转到step3
Step6.点击停止 停止播放音乐
Step7.点击退出。
图3.1音乐播放器流程图
第四章 界面展示
4.1软件部署
系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装。
4.2启动软件
打开软件后的界面
4.3 歌曲列表界面
歌曲列表界面
4.4 播放界面
4.5 收藏界面
4.6 在线搜索音乐界面
第五章 结 论
(1)通过本次开发解决了诸如SD卡音乐文件搜索并显示、联网搜索歌曲等难题,对安卓的开发有了更深入的认识。
(2) 通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成。
(3) 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclips4.0+Java语言的支持,Android Development Tool的插件,和Android SDK2.1版本的全面结合,才使整个音乐播放器系统得以实现。
第五章 部分源代码
以下给出功能实现代码,布局,风格等代码量过大,放在压缩文件中
MainActivity.java:
package ample.xindong;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import t.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
public潘泰名 class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.fragment_main);
        Thread thread = new Thread() {
            public void run() {
                try {
                    sleep(2500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            finish();
            Intent intent = new Intent(MainActivity.this, MusicActivity.class);
            startActivity(intent);
            }
            };
            thread.start();
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().u.main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
晚秋 下载        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity l.
        int常石磊的歌 id = ItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        白冰演过的电视剧return super.onOptionsItemSelected(item);
    }
    /**
    * A placeholder fragment containing a simple view.
    */
    public static class PlaceholderFragment extends Fragment {
        public PlaceholderFragment() {
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            return rootView;
        }
    }
}
BandanActivity.java
package ample.xindong;
import ample.Adapter.MusicListAdapter;
import android.app.Activity;
import t.Intent;
import android.database.Cursor;
import dia.MediaPlayer;
import android.os.Bundle;