在MediaPlayer App中播放音乐的服务或活动

时间:2014-02-26 08:12:09

标签: android android-activity android-service android-mediaplayer

我想自己开发Android版媒体播放器,但我有一个概念问题:我应该只为播放器使用Service还是Activity

我的应用程序中有Fragments,当我点击我的音乐列表中的某个项目时我想播放一首歌但我真的不知道应该使用哪两种技术来允许音乐即使在导航期间或应用程序外也能继续播放。

播放歌曲时开始新的Activity是否更好,然后让Activity继续运行或启动Service等待某些事件?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您应用的最佳解决方案可能是

i)使用前端可视化您的应用(例如选择要播放的音乐,暂停,转发和其他功能)

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();
    }
}

我认为这对你有所帮助..

答案 1 :(得分:1)

如果你想在后台播放音乐,你一定要使用服务。仅将活动用于与UI相关的操作。由于播放音乐不是与UI相关的操作,因此应该在Service中完成。请看一下:http://developer.android.com/guide/topics/media/mediaplayer.html