我的应用程序有一些背景音乐在循环播放,使用
然而,现在当用户移动到某些其他活动时,我需要音乐继续无缝播放。也就是说,如果他们按按钮 A,那么我将活动 A 添加到堆栈中,并且音乐应该继续播放;但是如果他们按按钮 B,则我将活动 B 添加到堆栈中,音乐应该停止。同样,如果他们按手机的返回按钮从活动 A 返回到原始活动,则音乐应该继续播放。
我已经尝试在 Activity A 的
目前,我让
有更好的方法吗?
[编辑:如果有帮助的话,
MediaPlayer
。我在 Activity 的 onPause
中停止音乐,这样如果用户按 Home 键离开应用程序,或者接到电话等情况时,它就不会继续播放。然而,现在当用户移动到某些其他活动时,我需要音乐继续无缝播放。也就是说,如果他们按按钮 A,那么我将活动 A 添加到堆栈中,并且音乐应该继续播放;但是如果他们按按钮 B,则我将活动 B 添加到堆栈中,音乐应该停止。同样,如果他们按手机的返回按钮从活动 A 返回到原始活动,则音乐应该继续播放。
我已经尝试在 Activity A 的
onResume
中重新启动 MediaPlayer
,但在过渡期间音乐有相当明显的间隙。目前,我让
onPause
触发半秒延迟,然后在另一个活动的 onResume
中取消延迟并在另外四分之一秒内淡出音乐。这意味着当用户离开应用程序时,音乐停止得足够快;然而,当用户切换活动时,在某些较慢的设备上仍然会出现音乐稍微暂停的情况。此外,这种方法感觉像一个非常糟糕的 hack。有更好的方法吗?
[编辑:如果有帮助的话,
MediaPlayer
存储在一个静态类中,我可以从应用程序的任何地方访问它。]