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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、的音樂(lè)文件,并且能夠控制音樂(lè)的播放,暫停,顯示歌手信息,歌曲專(zhuān)輯等功能。本項(xiàng)目還可以使人們生活更加多樣化,也使設(shè)計(jì)者更加熟悉Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。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"/ 處理進(jìn)度條更新Handler mHandler = new Handler() public void handleMessage(Message msg) switch (msg.what) case 0:/ 更新進(jìn)度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) / 手動(dòng)調(diào)節(jié)進(jìn)度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é)束/ 初始化音樂(lè)播放void init() / 進(jìn)入IdlemediaPlayer = new MediaPlayer();try / 初始化mediaPlayer.setDataSource(path);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);/ prepare 通過(guò)異步的方式裝載媒體資源mediaPlayer.prepareAsync();/ 后臺(tái)線程發(fā)送消息進(jìn)行更新進(jìn)度條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() / 測(cè)試播放音樂(lè)void play() mediaPlayer.start();text4.setText("音樂(lè)總長(zhǎng)度為:" + mediaPlayer.getDuration() + "毫秒");/ 暫停音樂(lè)private void pause() if (mediaPlayer != null && mediaPlayer.isPlaying() mediaPlayer.pause();text4.setText("暫停");/關(guān)閉private void exit() this.fi

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

最新文檔

評(píng)論

0/150

提交評(píng)論