音乐资源的名字:不能有中文,不能有空格,不能有特殊符号,尽量不要全是数字
音乐播放器:MediaPlayer创建的方式一:
一般如果需要添加一个背景音乐,,可以使用这种方式
Java代码:
public class MainActivity extends Activity {
private MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1.创建音乐播放器的对象,,,,,通过.create方式去创建
/*
* 1.这种创建方式,在音乐停止了以后,再去开始播放,会发生 (-38,0)这个异常------资源问题异常
* 2.当前应用(页面)退出以后,,音乐应该停止
*/
// 加载音乐资源的方式1:raw目录下的音乐资源
player = MediaPlayer.create(MainActivity.this, R.raw.onemorenight);
}
/*
* 播放
*/
public void play(View view) {
// player.reset();
// 开始播放
player.start();
}
/*
* 暂停
*/
public void pause(View view) {
if (player.isPlaying()&&player!=null) {
player.pause();
}
}
/*
* 停止
*/
public void stop(View view) {
if (player!=null) {
player.stop();
}
}
/**
* 页面销毁,,音乐也要停止
*/
@Override
protected void onDestroy() {
if (player!=null) {
//销毁音乐资源
player.release();
//垃圾回收
player=null;
}
super.onDestroy();
}
}
创建音乐播放器的方式二: new MediaPlayer 的方式
Java代码:
public class MainActivity extends Activity {
private MediaPlayer player;
private boolean flag=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1.创建音乐播放器的对象
player = new MediaPlayer();
}
/*
* 开始播放
*/
public void play(View view) {
//进行判断,,状态值
if (flag) {//处于暂停状态
player.start();//继续播放
flag=false;
} else {
try {
//重置资源 *****
player.reset();
// 2.加载音乐资源-----path:音乐资源的路径
//加载音乐资源2:加载sd卡下的音乐资源
// player.setDataSource(Environment.getExternalStorageDirectory()+"/CheapThrills.mp3");
//加载音乐资源3:加载assets目录下的音乐资源
AssetFileDescriptor openFd = getAssets().openFd("sugar.mp3");
player.setDataSource(openFd.getFileDescriptor(), openFd.getStartOffset(), openFd.getLength());
//3.准备
// player.prepare();//同步的准备
player.prepareAsync();//异步的准备
//4.播放
//player.start();//如果当前音乐没播放,,直接播放,,,如果处于暂停状态,继续播放
//准备完成的监听
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
player.start();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
/*
* 暂停
*/
public void pause(View view) {
if (player!=null&&player.isPlaying()) {
player.pause();
//更改状态值
flag=true;
}
}
/*
* 停止
*/
public void stop(View view) {
if (player!=null) {
player.stop();
}
}
/**
* 释放资源
*/
@Override
protected void onDestroy() {
if (player!=null) {
player.release();//释放音乐资源
player=null;
}
super.onDestroy();
}
}