Android 在MediaPlayer应用程序中播放音乐的服务或活动
我想自己为Android开发一个媒体播放器,但我有一个概念问题:我应该只为播放器使用服务还是活动 我的应用程序中有片段,我想在单击音乐列表中的一个项目时播放一首歌曲,但我真的不知道应该使用这两种技术中的哪一种,即使在导航或应用程序外,也可以让音乐继续播放 在播放歌曲时启动新活动,然后保持活动运行或启动服务等待某些事件是否更好Android 在MediaPlayer应用程序中播放音乐的服务或活动,android,android-activity,android-service,android-mediaplayer,Android,Android Activity,Android Service,Android Mediaplayer,我想自己为Android开发一个媒体播放器,但我有一个概念问题:我应该只为播放器使用服务还是活动 我的应用程序中有片段,我想在单击音乐列表中的一个项目时播放一首歌曲,但我真的不知道应该使用这两种技术中的哪一种,即使在导航或应用程序外,也可以让音乐继续播放 在播放歌曲时启动新活动,然后保持活动运行或启动服务等待某些事件是否更好 提前感谢。如果您想在后台播放音乐,您一定要使用该服务。仅将活动用于与UI相关的操作。因为播放音乐不是与用户界面相关的操作,所以应该在服务中完成。请看这里:如果你想在后台播放
提前感谢。如果您想在后台播放音乐,您一定要使用该服务。仅将活动用于与UI相关的操作。因为播放音乐不是与用户界面相关的操作,所以应该在服务中完成。请看这里:如果你想在后台播放音乐,你一定要使用这项服务。仅将活动用于与UI相关的操作。因为播放音乐不是与用户界面相关的操作,所以应该在服务中完成。请看这里:您的应用程序的最佳解决方案可能是 我将你的应用程序与前端可视化,比如选择要播放的音乐、暂停、转发和其他功能 ii启动在后台运行的服务,即使活动已关闭,该服务仍在后台继续活动进程 您可以通过实现以下功能来完成此任务->
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
private static final String ACTION_PLAY = "com.example.action.PLAY";
MediaPlayer mMediaPlayer = null;
public int onStartCommand(Intent intent, int flags, int startId) {
...
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = ... // initialize it here
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync(); // prepare async to not block main thread
}
}
/** Called when MediaPlayer is ready */
public void onPrepared(MediaPlayer player) {
player.start();
}
}
我认为这对您有一定帮助。您的应用程序的最佳解决方案可能是 我将你的应用程序与前端可视化,比如选择要播放的音乐、暂停、转发和其他功能 ii启动在后台运行的服务,即使活动已关闭,该服务仍在后台继续活动进程 您可以通过实现以下功能来完成此任务->
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
private static final String ACTION_PLAY = "com.example.action.PLAY";
MediaPlayer mMediaPlayer = null;
public int onStartCommand(Intent intent, int flags, int startId) {
...
if (intent.getAction().equals(ACTION_PLAY)) {
mMediaPlayer = ... // initialize it here
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.prepareAsync(); // prepare async to not block main thread
}
}
/** Called when MediaPlayer is ready */
public void onPrepared(MediaPlayer player) {
player.start();
}
}
我认为这对你有帮助。使用将在后台运行的服务使用将在后台运行的服务