【发布时间】:2020-04-27 09:40:50
【问题描述】:
我正在尝试从特定位置开始播放视频,但 VideoView 的行为很奇怪。当我运行这样的代码时
videoView.seekTo(2000)
int current = videoView.getCurrentPosition()
Log.e("Current Time", String.valueOf(current))
日志给我值 0。它应该给 2000,因为这是当前位置。即使我实现 onPreparedListener 它也不起作用(但以不同的方式)。它显示正确的值(2000),但视频仍然不是搜索。
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp)
{
videoView.getDuration();
videoView.seekTo(2000);
Log.e("Current: ", String.valueOf(videoView.getCurrentPosition()));
}
});
如何解决这个问题?如果我将构建 MediaPlayer + SurfaceView 它会有所帮助或将与 VideoView 表现相同?
【问题讨论】:
-
您是否检查过 seekTo 是否可行:developer.android.com/reference/android/widget/…
-
嗯,常规的 MediaPlayer 类提供了回调
OnSeekCompleteListener,但看起来 VideoView 没有提供回调。我想自己实现可能是更好的解决方案。或考虑例如使用 Exoplayer? -
@Christopher 你可以找。
标签: android android-mediaplayer surfaceview android-videoview seek