音乐播放器状态保存在Android中

时间:2012-08-25 14:05:39

标签: android

我开发了一个播放音频和视频歌曲的音乐播放器应用程序,它具有播放,暂停,进度条等功能,显示歌曲的进度,现在从MusicPlayerActivity返回时,音乐在后台运行,现在我想要从另一个活动转到这个MusicPlayerActivity来暂停这首歌,我用Intent进行切换,但是我没有得到进度条的值,即播放了多少首歌,虽然歌曲是在后台播放的。请任何人帮助我,如何存储歌曲的持续时间和UI的状态。请提供一些帮助或教程或链接。提前致谢。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在我的应用程序中,我将音乐播放器实现为后台服务。 在那项服务中,我每500ms发送一次广播消息,我提供有关当前位置的信息。当播放器暂停时,我停止发送消息。 在我注册的每个活动中都会收听此消息,因此我可以更新可见的播放器。 对于发送消息,我使用在后台线程上运行的处理程序。

private Runnable mUpdateProgressRunnable = new Runnable() {

        @Override
        public void run() {
            if (mMediaPlayer != null && !mSeeking) {
                int duration = mMediaPlayer.getDuration();
                int currentPosition = mMediaPlayer.getCurrentPosition();
                Bundle params = new Bundle();
                params.putInt(Broadcaster.P_PLAYER_DURATION, duration);
                params.putInt(Broadcaster.P_PLAYER_POSITION, currentPosition);
                getRferl().getBroadcaster().send(Broadcaster.E_PLAYER_CURRENT_POSITION, params);
                mUpdateProgressHandler.postDelayed(this, 500);
            }
        }
    };

Rferl是我的应用程序,Broadcaster只是LocalBroadcastManager的包装器