我正在直播音频,并希望具有暂停媒体播放器然后从当前直播位置开始的功能。默认的Pause()和Start()只是从停止的地方开始。关于如何保持当前位置更新以便Start()即时的任何想法?

最佳答案

您是否尝试调用seekTo()?

您可以使用TimerTask每半秒左右调用一次seekTo()来永久更新它,但是我不知道我对此有何看法。

编辑:如果您每500毫秒调用一次seekTo(),为了使其继续前进,您可以使用currentPosition +自上次调用以来耗时(在这种情况下为500毫秒)来调用它。但是我不知道这是否是最好的方法。另一种方法是创建一个执行新的seekTo(currentPosition + timeEllapsed)的OnSeekCompleteListener。在这种情况下,您需要像这样计算timeEllapsed:currentSystemTime-systemTimeOnLastCall

http://developer.android.com/reference/android/media/MediaPlayer.html:

可以通过调用seekTo(int)来调整播放位置。

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

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

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

关于android - 暂停时更新MediaPlayer的开始位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9865457/

10-10 04:02