現代智能手機不管是android、IOS、Windows phone8,其媒體播放器都是必不可少。html
Android的MediaPlayer包含了Audio和video的播放功能,本案例咱們學習如何使用Android的MediaPlayer播放MP3。java
1、設計界面android
一、首先把play.png、pause.png、stop.png三張圖片複製到res/drawable-hdpi文件夾內。app
二、再者把coffee.mp3複製到res/raw文件夾內。ide
三、佈局文件佈局
打開activity_main.xml文件。學習
輸入如下代碼:this
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageButton android:id="@+id/play" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/play" /> <ImageButton android:id="@+id/pause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/pause" /> <ImageButton android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/stop" /> <TextView android:id="@+id/prompt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="提示信息" /> </LinearLayout>
2、程序文件設計
打開「src/com.genwoxue.mp3/MainActivity.java」文件。code
而後輸入如下代碼:
package com.genwoxue.mp3; import android.app.Activity; import android.os.Bundle; import android.media.MediaPlayer; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; public class MainActivity extends Activity { private ImageButton btnPlay,btnPause,btnStop; private TextView tvPrompt; private MediaPlayer mpPlayer; //聲明一個變量判斷是否爲暫停,默認爲false private boolean isPaused = false; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到btnPlay、btnPause、btnStop和tvPrompt經過findViewById找到資源 btnPlay = (ImageButton)findViewById(R.id.play); btnPause = (ImageButton)findViewById(R.id.pause); btnStop = (ImageButton)findViewById(R.id.stop); tvPrompt = (TextView)findViewById(R.id.prompt); //建立MediaPlayer對象,將raw文件夾下的coffee.mp3 mpPlayer = MediaPlayer.create(this,R.raw.coffee); //設置播放監聽事件 btnPlay.setOnClickListener(new ImageButton.OnClickListener(){ @Override public void onClick(View v) { try { if(mpPlayer != null){ mpPlayer.stop(); } mpPlayer.prepare(); mpPlayer.start(); tvPrompt.setText("音樂播放中..."); } catch (Exception e) { tvPrompt.setText("播放發生異常..."); e.printStackTrace(); } } }); //設置暫停監聽事件 btnPause.setOnClickListener(new ImageButton.OnClickListener(){ @Override public void onClick(View v) { try { if(mpPlayer !=null){ mpPlayer.stop(); tvPrompt.setText("音樂中止播放..."); } } catch (Exception e) { tvPrompt.setText("音樂中止發生異常..."); e.printStackTrace(); } } }); //設置中止監聽事件 btnStop.setOnClickListener(new ImageButton.OnClickListener(){ @Override public void onClick(View v) { try { if(mpPlayer !=null){ if(isPaused==false){ mpPlayer.pause(); isPaused=true; tvPrompt.setText("中止播放!"); } else if(isPaused==true){ mpPlayer.start(); isPaused = false; tvPrompt.setText("開始播發!"); } } } catch (Exception e) { tvPrompt.setText("發生異常..."); e.printStackTrace(); } } }); //設置MediaPlayer播放完畢事件 mpPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){ // @Override public void onCompletion(MediaPlayer arg0){ try{ //釋放MediaPlayer資源 mpPlayer.release(); tvPrompt.setText("音樂播發結束!"); } catch (Exception e){ tvPrompt.setText(e.toString()); e.printStackTrace(); } } }); //設置MediaPlayer錯誤監聽事件 mpPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener(){ @Override public boolean onError(MediaPlayer arg0, int arg1, int arg2){ // TODO Auto-generated method stub try{ //發生錯誤時,釋放資源 mpPlayer.release(); tvPrompt.setText("播放發生異常!"); } catch (Exception e){ tvPrompt.setText(e.toString()); e.printStackTrace(); } return false; } }); } }
3、運行結果
單擊「播放」按鈕,一段優美的「走過咖啡屋」歌聲從這裏就開始了。