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;
}
}
这是一个比较简单的音乐播放服务程序,接下来我们直接在需要用到它的时候用服务调用即可
做完这些还是不能用到这个服务,为什么呢?因为没有注册!我们需要在清单文件中去注册这个服务
<service android:name=".service.MusicService">
</service>要注意:这里的name属性要添加你服务所在的包名,不然还是启动不了
写到这里,就可以实现播放背景音乐的功能啦!
我们在开发一些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属性要添加你服务所在的包名,不然还是启动不了
写到这里,就可以实现播放背景音乐的功能啦!
相关文章推荐
- Lua脚本调用外部脚本
- Lua中调用C++函数示例
- SQL SERVER调用存储过程小结
- Shell脚本中引用、调用另一个脚本文件的2种方法
- PowerShell中调用WPF生成炫酷窗口实例
- C#实现调用迅雷下载的方法
- 关于脚本调用外部对像和类型库
- Ruby中调用执行shell命令的6种方法
- jQuery AJAX实现调用页面后台方法
- Lua调用自定义C模块
- Lua中调用C++函数实例
- C++中调用Lua函数实例
- ajax内部值外部调用不了的原因及解决方法
- 浅析成员函数和常成员函数的调用
- C语言中函数声明与调用问题
- C#调用Python脚本的简单示例
- C#中事件的动态调用实现方法
- C++调用C#的DLL实现方法
- asp.net源程序编译为dll文件并调用的实现过程
- dedecms调用discuz论坛信息按照ID分类调用附详细说明