Android 暂停时更新MediaPlayer开始位置

Android 暂停时更新MediaPlayer开始位置,android,android-mediaplayer,Android,Android Mediaplayer,我正在播放直播音频,希望能够暂停mediaplayer,然后从当前直播位置开始播放。默认的Pause()和Start()仅从停止的位置开始。关于如何保持当前位置的更新以使Start()立即生效,您有什么想法吗?暂停MediaPlayer时,您会调用该命令,并在重新启动MediaPlayer时,调用该命令将当前位置设置回MediaPlayer。是否尝试调用seekTo() 您可以通过每隔半秒左右调用seekTo()来保持它的即时更新,但我不知道对此有何感想 编辑:如果您每500毫秒调用一次seek

我正在播放直播音频,希望能够暂停mediaplayer,然后从当前直播位置开始播放。默认的Pause()和Start()仅从停止的位置开始。关于如何保持当前位置的更新以使Start()立即生效,您有什么想法吗?

暂停MediaPlayer时,您会调用该命令,并在重新启动MediaPlayer时,调用该命令将当前位置设置回MediaPlayer。

是否尝试调用seekTo()

您可以通过每隔半秒左右调用seekTo()来保持它的即时更新,但我不知道对此有何感想

编辑:如果您每500毫秒调用一次seekTo(),为了使它向前移动,您将使用自上次调用以来的currentPosition+时间(在本例中为500毫秒)调用它。但我也不知道这是不是最好的办法。另一种方法是创建一个OnSeekCompleteListener,它执行一个新的seekTo(currentPosition+TimeLapsed)。在这种情况下,您需要像这样计算TimeLapsed:currentSystemTime-SystemTimeOnllastCall

发件人:

播放位置可以通过调用seekTo(int)进行调整

尽管异步seekTo(int)调用返回正确的方式,但实际的seek操作可能需要一段时间才能完成,尤其是对于正在流式传输的音频/视频。当实际搜索操作完成时,内部播放器引擎调用用户提供的 OnSeekComplete.OnSeekComplete()如果OnSeekCompleteListener事先已通过setOnSeekCompleteListener(OnSeekCompleteListener)注册

请注意,seekTo(int)也可以在其他状态下调用,例如Prepared、Paused和PlaybackCompleted状态


此外,可以通过调用getCurrentPosition()来检索实际的当前播放位置,这对于需要跟踪播放进度的应用程序(如音乐播放器)很有帮助。

这不就是在按下“暂停”时将我返回到流中的位置吗?至少当我测试它时,它就是这样做的。再次按下Start时,我想转到live内容流的结尾。哦,对不起,我没有注意到
live
。由于您正在流式播放实时音频,您可以在用户暂停MediaPlayer时停止它,
reset
和在用户重新启动MediaPlayer时启动它。您将始终处于实时流的末尾。getCurrentPosition()似乎正在返回暂停的位置,如何将流的末尾(实时内容)的位置获取到seekTo()该位置。+1表示“尽管异步seekTo(int)调用以正确的方式返回,实际的查找操作可能需要一段时间才能完成”。这解决了我的问题。调用seekTo(0);在stream.start()之后;为我工作刚刚编辑了我的答案,希望有帮助