播放背景音乐,用户可以停止或重启或暂停音乐

时间:2013-05-02 20:55:08

标签: java android service media-player

我正在开发一款Android游戏,我为我们的介绍播放一些背景音乐(我们有一个简介活动),但我希望它继续播放到下一个活动,也许能够从任何地方再次停止或播放音乐在申请中。

我创建了Service类来执行此操作

每件事情都很好但我只需要当用户停止音乐时媒体播放器保存getCurrentPosition();所以我可以播放由seekTo(msec)计算的音乐;

主要观点是,如果用户在长度中间停止音乐,音乐将不会从头开始(这就像用户可以暂停音乐并继续播放音乐)

我用

startService(new Intent(this, MyService.class));

启动音乐

我使用

stopService(new Intent(this, MyService.class));

停止音乐

这是我的MyService类

public class MyService extends Service {
    private static final String TAG = "MyService";
    MediaPlayer player;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onCreate");

        player = MediaPlayer.create(this, R.raw.game_music3);
        player.setLooping(false); // Set looping

    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onDestroy");
        player.stop();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onStart");
        player.start();
    }

    protected void onNewIntent() {
        player.pause();
    }
}

如果有任何事情不清楚,请评论我的问题,我会尝试解释更多 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

为什么不尝试将音乐曲目的当前位置保存在SharedPreferences上?

检查Android文档中的Storage options