基于Android 系统的音乐播放器设计与实现_第1页
基于Android 系统的音乐播放器设计与实现_第2页
基于Android 系统的音乐播放器设计与实现_第3页
基于Android 系统的音乐播放器设计与实现_第4页
基于Android 系统的音乐播放器设计与实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Android 系统的音乐播放器设计与实现实验报告 一、实验要求: 本课程设计的目的是开发一个可以播放主流音乐文件格式的播放器的播放功能模块,要求音乐播放器能够播放Mp3,Wav多种格式的音乐文件,能够控制播放,暂停,重播,停止,要求视觉外观美观,操作简单。二,设计思想 首先查找相关书籍与文献,了解Android的构架并搭建Android开发平台。 查找相关资料,了解现阶段基于Android平台手机音乐播放器发展现状以及相关功能。 播放器基本拥有以下功能: ü 播放本地音乐文件 ü 对播放的状态进行控制 ü 播放设置,开始暂停停止三,系统结构 音乐播放器 设定

2、播放界面暂停停止开始 四、数据结构的说明和模块的算法流程图运行 ü üü ü 结束 暂停开始音乐播放器主界面5、 使用说明书菜单有6个功能:播放,暂停,停止,重播。播放功能:点击后事件触发,传入歌曲名字,让程序操作该名字进行播放。暂停功能:点击后事件触发,歌曲暂停播放。停止功能:点击后事件触发,歌曲停止播放。重播功能;点击后事件触发,歌曲重新播放。6、 运行结果和结果分析作为Android平台上开发的应用软件,本设计具备与用户交互的界面,界面简洁美观易于操作。作为一款在线音乐客户端,提供给用户在线选歌的方便,提供在线播放歌曲的即时信息,如歌曲名,歌手名,

3、时长等等。七、我评价与总结 现如今社会生活节奏日益加快,人们在忙碌的生活中欣赏音乐是最好的舒缓压力的方式之一。随着移动设备的日益完善,我们大家都已经有了在手机上听自己喜欢歌曲的习惯,以往的做法是用数据线或者蓝牙等无线设备将PC上的歌曲复制几首到手机当中,反反复复的听,等到听厌了以后,再次装一些歌曲进去,如此反复,非常的麻烦。因此,如果在我们的手机上能实现在线听歌,这将会带来极大的方便。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,是手机显得更生动灵活化,与人们更为方便,让手机主人随时随地处于音乐的旋律之中。本设计实现的重要功能是播放Mp3格式

4、的音乐文件,并且能够控制音乐的播放,暂停,显示歌手信息,歌曲专辑等功能。本项目还可以使人们生活更加多样化,也使设计者更加熟悉Android的技术和其它在市场上的特点。8、 附录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 andro

5、id.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 tex

6、t4;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.getCurrentPosition();int time = mediaPlayer.getDuration

7、();int max = seekBar.getMax();seekBar.setProgress(position * max / time);break;default:break;/ 结束Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();text4 = (TextView) findViewById(R.id.text4);/ 初始化关闭按钮close = (B

8、utton) findViewById(R.id.close);close.setOnClickListener(new OnClickListener() Overridepublic void onClick(View arg0) close(););/ 初始化播放按钮playButton = (Button) findViewById(R.id.playButton);playButton.setOnClickListener(new OnClickListener() Overridepublic void onClick(View arg0) / TODO Auto-generate

9、d method stubToast.makeText(MainActivity.this, "time is " + mediaPlayer.getDuration(), 1000).show();play(););/ 初始化暂停按钮pauseButton = (Button) findViewById(R.id.pauseButton);pauseButton.setOnClickListener(new OnClickListener() Overridepublic void onClick(View arg0) pause(););/初始化退出按钮exit = (

10、Button) findViewById(R.id.exit);exit.setOnClickListener(new OnClickListener() Overridepublic void onClick(View arg0) exit(););seekBar = (SeekBar) findViewById(R.id.seekbar);seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() Overridepublic void onStopTrackingTouch(SeekBar seekBa

11、r) / 手动调节进度int dest = seekBar.getProgress();int time = mediaPlayer.getDuration();int max = seekBar.getMax();mediaPlayer.seekTo(time * dest / max);Overridepublic void onStartTrackingTouch(SeekBar arg0) / TODO Auto-generated method stubOverridepublic void onProgressChanged(SeekBar arg0, int arg1, bool

12、ean arg2) / TODO Auto-generated method stub); / seekbar结束/ 初始化音乐播放void init() / 进入IdlemediaPlayer = new MediaPlayer();try / 初始化mediaPlayer.setDataSource(path);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);/ prepare 通过异步的方式装载媒体资源mediaPlayer.prepareAsync();/ 后台线程发送消息进行更新进度条final int millis

13、econds = 100;new Thread() Overridepublic void run() while (true) try sleep(milliseconds); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();mHandler.sendEmptyMessage(0);.start();/ 11 catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();/关闭private

14、 void close() / 测试播放音乐void play() mediaPlayer.start();text4.setText("音乐总长度为:" + mediaPlayer.getDuration() + "毫秒");/ 暂停音乐private void pause() if (mediaPlayer != null && mediaPlayer.isPlaying() mediaPlayer.pause();text4.setText("暂停");/关闭private void exit() this.fi

15、nish();/ activity 退出时,停止播放音乐,释放资源Overrideprotected void onDestroy() / 在activity结束的时候回收资源if (mediaPlayer != null && mediaPlayer.isPlaying() mediaPlayer.stop();mediaPlayer.release();mediaPlayer = null;super.onDestroy();Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; t

16、his adds items to the action bar if 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" > <TextView and

17、roid:id="+id/text1" android:layout_width="match_parent" android:layout_height="100dp" android:layout_gravity="center" android:text="string/text1" android:textSize="60dp" /> <TextView android:id="+id/text2" android:layout_wid

18、th="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:text="string/text2" android:textSize="30dp" /> <TextView android:id="+id/text3" android:layout_width="match_parent" android:layout_height

19、="40dp" android:layout_gravity="center" android:text="string/text3" android:textSize="15dp" /> <SeekBar android:id="+id/seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" /> <LinearLayout

20、 android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="+id/close" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight

21、="1" android:text="string/close" /> <Button android:id="+id/playButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="string/play" /> <Button android:i

22、d="+id/pauseButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="string/pause" /> <Button android:id="+id/exit" android:layout_width="wrap_content" android:

23、layout_height="wrap_content" android:layout_weight="1" android:text="string/exit" /> </LinearLayout> <TextView android:id="+id/text4" android:layout_width="match_parent" android:layout_height="50dp" android:layout_gravity="center" android:text="string/text4" android:textSize="20dp" /> <TextView android:layout_width="match_parent" android:layout_height="60dp" android:layout_gravity="center" android:text="string/text5" andr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论