我开发了一个同时播放音频和视频歌曲的音乐播放器应用程序,它具有播放、暂停、显示歌曲进度的进度条等功能,现在从 MusicPlayerActivity 返回时,音乐在后台运行,现在我想去这个 MusicPlayerActivity 来自另一个活动来暂停歌曲,我使用 Intent 进行切换,但我没有得到进度条的值,即播放了多少歌曲,虽然歌曲正在后台播放。请任何人帮助我,如何存储歌曲的持续时间和 UI 的状态。请提供一些帮助或教程或链接。提前致谢。
user1488506
问问题
1466 次
2 回答
0
尝试其中一些教程,它们都在其中使用进度条。
http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/ https://github.com/commonsguy/vidtry/blob/master/src/com/commonsware/android/vidtry/ Player.java 如何在确定模式下使用 Android ProgressBar?
于 2012-08-25T14:17:11.453 回答
0
在我的应用程序中,我将音乐播放器实现为后台服务。在该服务中,我每 500 毫秒发送一次广播消息,其中我提供有关当前位置的信息。当播放器暂停时,我停止发送消息。并且在我注册收听此消息的每项活动中,我都可以更新可见播放器。对于发送消息,我使用在后台线程上运行的处理程序。
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 的包装器
于 2012-08-25T14:21:40.200 回答