我使用MediaPlayer从网络播放单个mp3歌曲,数据源为HTTP URL。
假设我们有以下播放状态:
歌曲时长:1:00
当前进度:0:10
当前缓冲进度:0:30
假设我想要跳过歌曲的一部分并向前搜索。我可以使用MediaPlayer.seekTo()方法实现。如果我搜索已缓冲的位置(0:20),则操作将正确执行。但是,如果我搜索尚未缓冲的位置(0:40),MediaPlayer会表现得奇怪。它立即指示已正确搜索到该位置,而不等待缓冲区填充。事实上,它继续在之前跳过的位置播放。从现在开始,MediaPlayer.getCurrentPosition()方法返回错误的位置。当播放达到结尾并调用OnCompletionListener.onCompletion回调时,当前媒体播放器的位置比整首歌曲的时长高得多。
有什么解决方法吗?