当前位置:文档之家› 基于Android-系统的音乐播放器设计与实现

基于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;import android.widget.SeekBar;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {MediaPlayer mediaPlayer;SeekBar seekBar;ﻩprivate TextView text4;Button playButton, pauseButton, close, exit;ﻩ// 本地歌曲的路径String path = "/storage/sdcard1/sky.mp3";// 处理进度条更新Handler mHandler = new Handler() {ﻩﻩpublic void handleMessage(Message msg) {ﻩﻩswitch (msg.what) {ﻩcase 0:ﻩﻩ// 更新进度ﻩint position = mediaPlayer.getCurrent Position();ﻩﻩﻩint time =mediaPlayer.getDuration();ﻩﻩﻩint max = seekBar.getMax();ﻩﻩﻩseekBar.setProgress(position * max / time);ﻩﻩbreak;default:ﻩﻩbreak;ﻩﻩ}ﻩ}ﻩ};// 结束ﻩ@Overrideprotectedvoid onCreate(Bundle savedInstanceS tate) {super.onCreate(savedInstanceState);ﻩﻩsetContentView(R.layout.activity_main);ﻩinit();ﻩﻩtext4 = (TextView) findViewById(R.id.text4);ﻩ// 初始化关闭按钮ﻩclose = (Button) findViewById(R.id.close);close.setOnClickListener(new OnClickListener(){ﻩﻩ@Overrideﻩﻩpublic void onClick(View arg0) {ﻩﻩclose();ﻩﻩ}});ﻩ// 初始化播放按钮ﻩplayButton = (Button) findViewById(R.id.pla yButton);ﻩplayButton.setOnClickListener(new OnClickListener() {ﻩﻩﻩ@Overrideﻩﻩpublic void onClick(View arg0) {ﻩ//TODO Auto-generated method stubﻩﻩﻩToast.makeText(MainActivity.this, "time is " + mediaPlayer.getDuration(), 1000).show();ﻩplay();ﻩﻩ}});ﻩ// 初始化暂停按钮ﻩpauseButton = (Button) findViewById(R.id.pauseButton);ﻩﻩpauseButton.setOnClickListener(newOnClickListener(){ﻩ@Overrideﻩpublic void onClick(View arg0) {ﻩpause();ﻩﻩ}ﻩ});ﻩﻩ//初始化退出按钮ﻩﻩexit =(Button) findViewById(R.id.exit);ﻩﻩexit.setOnClickListener(new OnClickListener() {ﻩﻩﻩ@Overrideﻩpublic void onClick(View arg0) {ﻩﻩexit();ﻩ}ﻩﻩ});ﻩseekBar = (SeekBar)findViewById(R.id.seekbar);ﻩﻩseekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBa rChangeListener() {ﻩﻩ@Overrideﻩpublic void onStopTrackingTouch(SeekBar seekBar) {// 手动调节进度ﻩﻩint dest = seekBar.getProgress();ﻩﻩint time = mediaPlayer.getDuration();ﻩﻩint max = seekBar.getMax();ﻩﻩmediaPlayer.seekTo(time * dest / max);ﻩ}ﻩ@Overrideﻩpublic void onStartTrackingTouch(SeekBara rg0) {ﻩﻩﻩ// TODO Auto-generated method stubﻩﻩﻩ}ﻩﻩ@Overrideﻩpublic void onProgressChanged(SeekBar ar g0, intarg1, boolean arg2) {ﻩﻩﻩ// TODO Auto-generated method stubﻩ}}); // seekbar结束}ﻩ// 初始化音乐播放ﻩvoid init() {ﻩ//进入IdlemediaPlayer= new MediaPlayer();try {ﻩﻩ// 初始化ﻩﻩmediaPlayer.setDataSource(path);ﻩﻩmediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);ﻩﻩ//prepare 通过异步的方式装载媒体资源mediaPlayer.prepareAsync();ﻩﻩﻩ//后台线程发送消息进行更新进度条ﻩfinalint milliseconds = 100;ﻩﻩnew Thread() {ﻩﻩﻩ@Overrideﻩﻩﻩﻩpublic void run() {ﻩﻩﻩwhile (true) {ﻩﻩﻩtry {ﻩﻩﻩsleep(milliseconds);ﻩﻩﻩﻩﻩ} catch (InterruptedException e) {//TODO Auto-generated catch blockﻩﻩﻩﻩﻩe.printStackTrace();ﻩﻩﻩ}ﻩﻩﻩﻩﻩmHandler.sendEmptyMessage(0);ﻩﻩ}ﻩ}}.start();// 11ﻩﻩ} catch(Exception e) {ﻩﻩﻩ// TODO Auto-generated catch blocke.printStackTrace();ﻩﻩ}ﻩ}//关闭private void close() {ﻩ}ﻩ//测试播放音乐void play() {ﻩmediaPlayer.start();ﻩtext4.setText("音乐总长度为:" + mediaPlayer.get Duration() + "毫秒");}// 暂停音乐ﻩprivate void pause() {ﻩif (mediaPlayer != null &&mediaPlayer.isPl aying()) {ﻩmediaPlayer.pause();ﻩﻩtext4.setText("暂停");}}ﻩ//关闭ﻩﻩprivate void exit(){ﻩﻩﻩthis.finish();ﻩﻩ}ﻩ// activity 退出时,停止播放音乐,释放资源@Overrideﻩprotected voidonDestroy() {ﻩ// 在activity结束的时候回收资源ﻩﻩif(mediaPlayer != null && mediaPlayer.isPlaying()){ﻩmediaPlayer.stop();ﻩmediaPlayer.release();ﻩﻩmediaPlayer= null;ﻩﻩ}ﻩﻩsuper.onDestroy();ﻩ}ﻩ@Overridepublic boolean onCreateOptionsMenu(Menu menu) {ﻩﻩ// Inflate the menu; this adds items to the action bar i f it is present.ﻩgetMenuInflater().inflate(R.menu.main,menu); ﻩﻩreturn true;}}<LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/text1"android:layout_width="match_parent"android:layout_height="100dp"android:layout_gravity="center"android:text="@string/text1"android:textSize="60dp"/><TextViewandroid:id="@+id/text2"android:layout_width="match_parent"android:layout_height="50dp"android:layout_gravity="center"android:text="@string/text2"android:textSize="30dp"/><TextViewandroid:id="@+id/text3"android:layout_width="match_parent"android:layout_height="40dp"android:layout_gravity="center"android:text="@string/text3"android:textSize="15dp"/><SeekBarandroid:id="@+id/seekbar"android:layout_width="match_parent"android:layout_height="wrap_content"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/close"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="@string/close"/><Buttonandroid:id="@+id/playButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="@string/play"/><Buttonandroid:id="@+id/pauseButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="@string/pause"/><Buttonandroid:id="@+id/exit"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="@string/exit"/></LinearLayout><TextViewandroid:id="@+id/text4"android:layout_width="match_parent"android:layout_height="50dp"android:layout_gravity="center"android:text="@string/text4"android:textSize="20dp"/><TextViewandroid:layout_width="match_parent"android:layout_height="60dp"android:layout_gravity="center"android:text="@string/text5"android:textSize="20dp"/></LinearLayout><?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">莫晓莉</string><string name="action_settings">设置</string><stringname="pause">暂停</string><string name="play">播放</string><string name="text1">音乐播放器</string><string name="text2">sky.mp3</string><string name="text3">进度调节器</string><string name="text4">ready</string><string name="text5">12022125莫晓莉</string> <stringname="close">关闭</string><string name="exit">退出</string></resources>。

相关主题