基于Android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)_第1頁
基于Android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)_第2頁
基于Android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)_第3頁
基于Android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)_第4頁
基于Android系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于Android 系統(tǒng)的音樂播放器設(shè)計與實現(xiàn)實驗報告 一、實驗要求: 本課程設(shè)計的目的是開發(fā)一個可以播放主流音樂文件格式的播放器的播放功能模塊,要求音樂播放器能夠播放Mp3,Wav多種格式的音樂文件,能夠控制播放,暫停,重播,停止,要求視覺外觀美觀,操作簡單。二,設(shè)計思想 首先查找相關(guān)書籍與文獻,了解Android的構(gòu)架并搭建Android開發(fā)平臺。 查找相關(guān)資料,了解現(xiàn)階段基于Android平臺手機音樂播放器發(fā)展現(xiàn)狀以及相關(guān)功能。 播放器基本擁有以下功能: ü 播放本地音樂文件 ü 對播放的狀態(tài)進行控制 ü 播放設(shè)置,開始暫停停止三,系統(tǒng)結(jié)構(gòu) 音樂播放器 設(shè)定

2、播放界面暫停停止開始 四、數(shù)據(jù)結(jié)構(gòu)的說明和模塊的算法流程圖運行 ü üü ü 結(jié)束 暫停開始音樂播放器主界面5、 使用說明書菜單有6個功能:播放,暫停,停止,重播。播放功能:點擊后事件觸發(fā),傳入歌曲名字,讓程序操作該名字進行播放。暫停功能:點擊后事件觸發(fā),歌曲暫停播放。停止功能:點擊后事件觸發(fā),歌曲停止播放。重播功能;點擊后事件觸發(fā),歌曲重新播放。6、 運行結(jié)果和結(jié)果分析作為Android平臺上開發(fā)的應(yīng)用軟件,本設(shè)計具備與用戶交互的界面,界面簡潔美觀易于操作。作為一款在線音樂客戶端,提供給用戶在線選歌的方便,提供在線播放歌曲的即時信息,如歌曲名,歌手名,

3、時長等等。七、我評價與總結(jié) 現(xiàn)如今社會生活節(jié)奏日益加快,人們在忙碌的生活中欣賞音樂是最好的舒緩壓力的方式之一。隨著移動設(shè)備的日益完善,我們大家都已經(jīng)有了在手機上聽自己喜歡歌曲的習慣,以往的做法是用數(shù)據(jù)線或者藍牙等無線設(shè)備將PC上的歌曲復(fù)制幾首到手機當中,反反復(fù)復(fù)的聽,等到聽厭了以后,再次裝一些歌曲進去,如此反復(fù),非常的麻煩。因此,如果在我們的手機上能實現(xiàn)在線聽歌,這將會帶來極大的方便。 本項目是一款基于Android手機平臺的音樂播放器,使Android手機擁有個性的多媒體播放器,是手機顯得更生動靈活化,與人們更為方便,讓手機主人隨時隨地處于音樂的旋律之中。本設(shè)計實現(xiàn)的重要功能是播放Mp3格式

4、的音樂文件,并且能夠控制音樂的播放,暫停,顯示歌手信息,歌曲專輯等功能。本項目還可以使人們生活更加多樣化,也使設(shè)計者更加熟悉Android的技術(shù)和其它在市場上的特點。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;/ 結(jié)束Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();text4 = (TextView) findViewById(R.id.text4);/ 初始化關(guān)閉按鈕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) / 手動調(diào)節(jié)進度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結(jié)束/ 初始化音樂播放void init() / 進入IdlemediaPlayer = new MediaPlayer();try / 初始化mediaPlayer.setDataSource(path);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);/ prepare 通過異步的方式裝載媒體資源mediaPlayer.prepareAsync();/ 后臺線程發(fā)送消息進行更新進度條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();/關(guān)閉private

14、 void close() / 測試播放音樂void play() mediaPlayer.start();text4.setText("音樂總長度為:" + mediaPlayer.getDuration() + "毫秒");/ 暫停音樂private void pause() if (mediaPlayer != null && mediaPlayer.isPlaying() mediaPlayer.pause();text4.setText("暫停");/關(guān)閉private void exit() this.fi

15、nish();/ activity 退出時,停止播放音樂,釋放資源Overrideprotected void onDestroy() / 在activity結(jié)束的時候回收資源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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論