您的位置:首页 > 移动开发 > Android开发

android背景音乐播放

2016-07-24 21:26 501 查看
前言

我们在开发一些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属性要添加你服务所在的包名,不然还是启动不了
写到这里,就可以实现播放背景音乐的功能啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息