0

我正在开发一个 Android 游戏,我为我们的介绍播放一些背景音乐(我们有一个介绍活动),但我希望它继续播放到下一个活动,并且也许能够从应用程序中的任何位置停止或再次播放音乐.

我已经创建了服务类来做到这一点

一切正常,但我只需要当用户停止音乐时媒体播放器保存 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();
    }
}

如果您有任何不清楚的地方,请评论我的问题,我会尽力解释更多谢谢您的帮助

4

1 回答 1

0

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

检查 Android 文档中的存储选项

于 2013-05-02T20:59:14.453 回答