Android 多个背景音乐循环播放
在开发 Android 应用程序时,经常会遇到需要在应用中播放背景音乐的需求。而有时候我们可能希望能够切换不同的背景音乐,并实现这些音乐的循环播放。本文将介绍如何在 Android 应用中实现多个背景音乐的循环播放。
实现思路
要实现多个背景音乐的循环播放,我们可以创建一个音乐管理类 MusicManager,该类负责管理所有的背景音乐资源,并提供接口供其他组件调用。在 MusicManager 中,我们可以使用 MediaPlayer 类来处理音乐的播放和循环。
MusicManager 类
下面是 MusicManager 类的代码示例:
public class MusicManager {
private static MediaPlayer mediaPlayer;
private static int currentMusicIndex = 0;
private static List<Integer> musicList;
public static void init(Context context) {
mediaPlayer = new MediaPlayer();
musicList = new ArrayList<>();
musicList.add(R.raw.music1);
musicList.add(R.raw.music2);
// 添加更多音乐资源
}
public static void playNextMusic() {
currentMusicIndex = (currentMusicIndex + 1) % musicList.size();
playMusic(musicList.get(currentMusicIndex));
}
private static void playMusic(int musicResId) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.reset();
}
mediaPlayer = MediaPlayer.create(context, musicResId);
mediaPlayer.setLooping(true);
mediaPlayer.start();
}
public static void release() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
}
使用 MusicManager
在应用的 Activity 或 Fragment 中,我们可以调用 MusicManager 的接口来播放音乐。例如,我们可以在 Activity 的 onCreate 方法中初始化 MusicManager:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MusicManager.init(this);
MusicManager.playNextMusic();
}
当需要播放下一首音乐时,可以调用 MusicManager 的 playNextMusic 方法:
MusicManager.playNextMusic();
最后,在 Activity 的 onDestroy 方法中释放 MusicManager:
@Override
protected void onDestroy() {
super.onDestroy();
MusicManager.release();
}
类图
下面是 MusicManager 类的类图:
classDiagram
class MusicManager {
-MediaPlayer mediaPlayer
-int currentMusicIndex
-List<Integer> musicList
+init(Context context)
+playNextMusic()
-playMusic(int musicResId)
+release()
}
旅行图
下面是一个旅行图示例,表示用户在应用中切换不同的背景音乐:
journey
title Background Music Journey
section Play Music
Play -> Next: Click Next Button
section Next
Next -> Play: Play Next Music
通过以上代码示例和实现思路,我们可以在 Android 应用程序中实现多个背景音乐的循环播放功能。希望本文对你有所帮助!