众所周知,Android提供丰富的API供应用开发者开发各种各样的应用。同样对于开发多媒体相关的应用,Android也提供了非常丰富的API, 可以参考Android中文开发者网站的media部分。
https://developer.android.google.cn/reference/android/media/package-summary.html
要实现播放一首音乐,使用MediaPlayer这个类,只需如下简单的几步。
player.setDataSource(path);
player.prepare();
player.start();
以下是我写的一个简单的Demo, 播放sdcard上的Test.mp3文件。
package com.jaychou.musicdemo;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
public class MainActivity extends Activity {
private Button play;
private Button stop;
private MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
play = (Button)findViewById(R.id.play);
stop = (Button)findViewById(R.id.stop);
player = new MediaPlayer();
play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
play();
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(player.isPlaying()){
player.stop();
}
}
});
}
private void play(){
try {
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Music/Test.mp3";
player.setDataSource(path);
Log.d("Jaychou","MusicDemo setDataSource");
player.prepare();
Log.d("Jaychou","MusicDemo Prepare");
player.start();
} catch (IOException e) {
e.printStackTrace();
Log.d("Jaychou","err when play");
}
}
}
注意:这份代码是跑在Android N上面的,android在6.0上推出了运行时权限,以上代码在Android 6.0及其以上版本需要添加权限处理的代码。 这里也可以直接在Settings中将MusicDemo的Storage权限手动打开。
如图:
点击如下图的PLAY MUSIC就可以播放Test.mp3了。