Android MediaPlayer seekTo不起作用

时间:2014-05-07 10:31:49

标签: android video media-player media android-videoview

我对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()之前启动(),然后在seekTo()方法之后再次启动())

所以在mp.start()行之后,mp.getCurrentPosition()说它是3000,但问题是它不是!视频从头开始。在我尝试寻找的每种情况下,在seekTo(ms)和start()之后,视频从头开始,无论如何。

我必须提一下,我还使用了mp.setOnSeekCompleteListener()来了解搜索何时完成。在这个回调中,我试图再次启动()视频,但它始终从头开始。

是的,有人能帮帮我吗?我将不胜感激任何建议:)。感谢名单!

1 个答案:

答案 0 :(得分:6)

我发现我的视频不可搜索,这就是为什么每次我使用搜索时它都会让我的视频从头开始。为了解决这个问题,我用H.264

转换了它们