【发布时间】:2014-05-07 10:31:48
【问题描述】:
MediaPlayer 的 seekTo() 方法有问题。好像根本没用!我关注了有关此问题的其他线程并尝试了不同的解决方法,但仍然 seekTo() 什么都不做!这是我的代码:
private MediaPlayer mMediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
final VideoView videoView = (VideoView)findViewById(R.id.videoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
final Uri video = Uri.parse("android.resource://"+getPackageName()+"/"+R.drawable.video_myopia);
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mMediaPlayer = mp;
System.out.println("CURRENT POSITION 0: " + mp.getCurrentPosition());
mp.seekTo(3000);
System.out.println("CURRENT POSITION 1: " + mp.getCurrentPosition());
mp.start();
System.out.println("CURRENT POSITION 2: " + mp.getCurrentPosition());
}
});
System.out.println() 显示以下输出:
- 位置 0: 0
- 位置 1:3000
- 位置 2:3000
(注意:我也尝试在 seekTo() 之前 start(),然后在 seekTo() 方法之后再次 start())
所以在 mp.start() 行之后 mp.getCurrentPosition() 说它在 3000 但问题是它不是!视频从头开始。在我尝试搜索的每种情况下,在 seekTo(ms) 和 start() 之后,无论如何视频都会从头开始。
我必须提到,我还使用 mp.setOnSeekCompleteListener() 来了解搜索何时完成。在这个回调中,我尝试再次开始()视频,但它总是从头开始。
有人可以帮帮我吗?我将不胜感激任何建议:)。谢谢!
【问题讨论】:
-
我也遇到了同样的问题,还没找到解决办法,你呢?
-
我记得我解决了这个问题。我会发布一个答案。
-
谢谢Ispas,我会看看你的答案。
标签: android video media-player media android-videoview