【问题标题】:Why mediaPlayer.seekTo(msec) doesn't update surfaceView when mediaPlayer is paused?为什么 mediaPlayer.seekTo(msec) 在 mediaPlayer 暂停时不更新surfaceView?
【发布时间】:2012-08-20 11:35:43
【问题描述】:
我在我的安卓应用中使用MediaPlayer 来播放视频。当通过mediaPlayer.pause() 方法暂停播放并且我调用mediaPlayer.seekTo(msec) 时,我在其中显示视频的surfaceView 没有更新。它显示当我调用pause() 方法时视频停止的帧。
当我再次start() 时,它才从我之前在seekTo() 中指定的帧开始。
当 mediaPlayer 暂停而不播放时,如何强制 mediaPlayer 更新 surfaceView?
【问题讨论】:
标签:
android
video
media-player
【解决方案1】:
我在姜饼系列操作系统上遇到了同样的问题。我在实际调用 start 的 seekbar 中使用 onProgressChanged 时修复了它,这会将视频更新到正确的位置,但仍将视频保持在同一位置。
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
if(fromUser)
{
videoPlayer.seekTo(progress);
setRemainingTime(progress);
setPreviousTime(progress);
playerPausedAt = progress;
videoPlayer.start();
}
}
上面的代码对我来说效果很好。