Android通过Service实现音乐后台播放

时间:2024-10-22 07:40:01

Android应用程序启动后播放音乐,而当应用程序退出后音乐也会随之停止,要想实现后台播放,这时候就需要Android中的另一组件——Service。


Service是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。它可以启动并运行,直至有人停止了它或它自己停止。在这种方式下,它以调用()启动,而以调用()结束。它可以调用() 或 ()来自己停止。不论调用了多少次startService()方法,你只需要调用一次stopService()来停止服务。


下面说下通过Service来实现后台播放音乐。


  1. public class MusicPlayer implements MediaPlayer.OnCompletionListener, {;
  2. private MediaPlayer bgPlayer;
  3. public MusicPlayer(Context context) {
  4. this.context = context;
  5. }
  6. //当音乐播放完毕时
  7. public void onCompletion(MediaPlayer mp) {
  8. stopBgSound();
  9. }
  10. //当音乐播放发生错误时
  11. public boolean onError(MediaPlayer mp, int what, int extra) {
  12. stopBgSound();
  13. return false;
  14. }
  15. //播放背景音乐,传入的paramInt为res/raw/目录下的音频文件的引用
  16. public void playBgSound(int paramInt) {
  17. stopBgSound();
  18. try {
  19. //利用音频文件创建一个MeidaPlayer
  20. MediaPlayer mediaPlayer = (context, paramInt);
  21. bgPlayer = mediaPlayer;
  22. (this);
  23. //设置是否循环播放
  24. (true);
  25. //开始播放
  26. ();
  27. } catch (IllegalStateException e) {
  28. ();
  29. }
  30. }
  31. //停止播放背景音乐
  32. public void stopBgSound() {
  33. if(bgPlayer == null)
  34. return;
  35. if(())
  36. ();
  37. ();
  38. bgPlayer = null;
  39. }
  40. }