前言
我们在开发一些android应用程序,尤其是手机游戏的时候,就需要添加一些背景音乐,在这里我会介绍两种播放的方式供大家参考
第一种:直接播放
这种方式相对简单,就是在activity的onCreate()方法中添加以下代码就可以
<span style="font-size:18px;">private MediaPlayer mediaPlayer;
mediaPlayer=MediaPlayer.create(this, R.raw.background);
//是否循环播放
mediaPlayer.setLooping(true);</span>
这种方法虽然简单,但是在我们系统化开发中就显得比较粗糙,所以需要用下面这种方式来实现
第二种:用服务实现
这种方式是在开发中普遍用到的方法,也能够让代码结构更加清晰
首先要在服务所在的包中新建一个MusicService的.Java文件,如果没有这个包,建议添加,在这个文件中,主要写播放音乐的一些方法,代码如下:
package com.nxzst.gbg.service;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Binder;
import android.os.IBinder;
import com.nxzst.gbg.R;
import com.nxzst.gbg.util.LogX;
public class MusicService extends Service{
public class MusicBinder {
public MusicService getService() {
// TODO Auto-generated method stub
return MusicService.this;
}
}
private MediaPlayer mediaPlayer;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public void onCreate(){
super.onCreate();
LogX.print("==========service start=========");
mediaPlayer=MediaPlayer.create(this, R.raw.background);
//是否循环播放
mediaPlayer.setLooping(true);
if(mediaPlayer==null){
return;
}
}
public void onDestroy(){
super.onDestroy();
if(mediaPlayer!=null){
mediaPlayer.stop();
}
mediaPlayer.release();
}
public int onStartCommand(Intent intent,int flags,int startId){
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
return START_STICKY;
}
}
这是一个比较简单的音乐播放服务程序,接下来我们直接在需要用到它的时候用服务调用即可
Intent intent=new Intent(SettingActivity.this,MusicService.class);
startService(intent);
要注意:这里启动的是服务,不是activity
做完这些还是不能用到这个服务,为什么呢?因为没有注册!我们需要在清单文件中去注册这个服务
<service android:name=".service.MusicService">
</service>
要注意:这里的name属性要添加你服务所在的包名,不然还是启动不了
写到这里,就可以实现播放背景音乐的功能啦!