Android应用程序启动后播放音乐,而当应用程序退出后音乐也会随之停止,要想实现后台播放,这时候就需要Android中的另一组件——Service。
Service是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用()启动,而以调用()结束。它可以调用() 或 ()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。
下面说下通过Service来实现后台播放音乐。
-
public class MusicPlayer implements MediaPlayer.OnCompletionListener, {;
-
private MediaPlayer bgPlayer;
-
-
public MusicPlayer(Context context) {
-
this.context = context;
-
}
-
//当音乐播放完毕时
-
public void onCompletion(MediaPlayer mp) {
-
stopBgSound();
-
}
-
//当音乐播放发生错误时
-
public boolean onError(MediaPlayer mp, int what, int extra) {
-
stopBgSound();
-
return false;
-
}
-
//播放背景音乐,传入的paramInt为res/raw/目录下的音频文件的引用
-
public void playBgSound(int paramInt) {
-
stopBgSound();
-
-
try {
-
//利用音频文件创建一个MeidaPlayer
-
MediaPlayer mediaPlayer = (context, paramInt);
-
bgPlayer = mediaPlayer;
-
(this);
-
//设置是否循环播放
-
(true);
-
//开始播放
-
();
-
} catch (IllegalStateException e) {
-
();
-
}
-
}
-
//停止播放背景音乐
-
public void stopBgSound() {
-
if(bgPlayer == null)
-
return;
-
if(())
-
();
-
();
-
bgPlayer = null;
-
}
-
}