现代智能手机不管是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、运行结果
单击“播放”按钮,一段优美的“走过咖啡屋”歌声从这里就开始了。