一.使用MediaPlayer播放音乐的demo
1. 添加权限
因为音乐文件在sdcard中,所以需要添加外置sd卡的访问权限
AndroidManifest.xml
2. demo代码如下
media.rar
(下载后改名为media.tar.gz解压)
1. 添加权限
因为音乐文件在sdcard中,所以需要添加外置sd卡的访问权限
AndroidManifest.xml
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- package com.example.MediaPlay;
-
- import java.io.File;
- import com.example.MediaPlay.R;
- import android.app.Activity;
- import android.view.View;
- import android.widget.Button;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.media.MediaPlayer.OnCompletionListener;
- import android.media.MediaPlayer.OnPreparedListener;
- import android.os.Bundle;
-
- public class MediaPlay extends Activity
- {
- private String TAG = "cong";
- private Button btn_play, btn_pause, btn_stop;
- private MediaPlayer mediaPlayer;
- private String File_Path = "/mnt/sdcard/Music/letitgo.mp3"; //音乐文件的路径
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- btn_play = (Button) findViewById(R.id.btn_play);
- btn_pause = (Button) findViewById(R.id.btn_pause);
- btn_stop = (Button) findViewById(R.id.btn_stop);
-
- btn_play.setOnClickListener(click);
- btn_pause.setOnClickListener(click);
- btn_stop.setOnClickListener(click);
- }
- private View.OnClickListener click = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btn_play:
- play();
- break;
- case R.id.btn_pause:
- pause();
- break;
- case R.id.btn_stop:
- stop();
- break;
- default:
- break;
- }
- }
- };
-
- protected void play() {
- File file = new File(File_Path); //确认音乐文件的存在
- if(!file.exists())
- return ;
- try {
- mediaPlayer = new MediaPlayer();
- mediaPlayer.setDataSource(File_Path);
- mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- mediaPlayer.prepareAsync(); //异步的方式加载音乐文件
- mediaPlayer.setOnPreparedListener(new OnPreparedListener() { //异步加载完音乐文件后会回调此
- @Override
- public void onPrepared(MediaPlayer mp) {
- mediaPlayer.start(); //准备好之后才能start
- btn_play.setEnabled(false);
- }
- });
- mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
- @Override
- public void onCompletion(MediaPlayer mp) {
- btn_play.setEnabled(true); //播放完成后btn_play可用
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- protected void pause() {
- if (mediaPlayer != null && !mediaPlayer.isPlaying()) {
- mediaPlayer.start();
- btn_pause.setText("pause");
- return;
- }
- if (mediaPlayer != null && mediaPlayer.isPlaying()) {
- mediaPlayer.pause();
- btn_pause.setText("continue");
- }
- }
-
- protected void stop() {
- if (mediaPlayer != null && mediaPlayer.isPlaying()) {
- mediaPlayer.stop();
- mediaPlayer.release();
- mediaPlayer = null;
- btn_play.setEnabled(true);
- }
- }
-
- @Override
- protected void onDestroy() {
- if (mediaPlayer != null && mediaPlayer.isPlaying()) {
- mediaPlayer.stop();
- mediaPlayer.release();
- mediaPlayer = null;
- }
- super.onDestroy();
- }
- }
