【问题标题】:playing background music and the user can stop or restart or pause the music播放背景音乐,用户可以停止或重新启动或暂停音乐
【发布时间】:2013-05-02 20:55:07
【问题描述】:

我正在开发一个 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();
    }
}

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

【问题讨论】:

    标签: java android service media-player


    【解决方案1】:

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

    查看 Android 文档中的 Storage options

    【讨论】:

    • 我知道如何保存当前位置以及如何再次播放它,但是当用户播放我调用 startService(new Intent(this, MyService.class ));我对 SharedPreferences 没有任何想法,请您解释一下并感谢您的帮助
    • @MohammedDwekat 你的答案在我给你的第二个链接上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多