2010-06-05 48 views
2

我在我的應用程序中使用VideoView播放視頻。在點擊一個按鈕時,它會記錄視頻的當前位置,並且該應用會通過一些URL打開瀏覽器。按下後退按鈕後,該應用程序會回到視頻應用程序,並從停止播放的位置恢復視頻。Android VideoView恢復並seekTo

我看了一下Android Activity的生命週期,看到一旦視頻活動進入前臺,onStart()方法就會被調用。所以我在onStart()中創建了我的佈局,並通過查找當前位置來播放視頻。

我的問題是,當視頻恢復時,它從一開始緩衝,然後尋求。既然它已經第一次緩衝了,有沒有辦法在搜索時再次消除緩衝?

感謝 克里斯

+0

試着看看我在[7276825]中提出的建議(http://stackoverflow.com/questions/7276825/problem-with-videoview-on-android/11938750#11938750)。 – 2012-08-13 17:38:16

回答

0

我有一個類似的問題。我有一個OnPreparedListener,在開始之前執行seekTo。 seekTo的工作原理除了視頻最開始出現音頻故障,就好像它開始播放然後搜索一樣。我不知道我的代碼是否會幫助描述緩衝問題,但它可能有助於說明問題。

mVideoView.setVisibility(View.VISIBLE); 
    //get current window information, and set format, set it up differently, if you need some special effects 
    getWindow().setFormat(PixelFormat.TRANSLUCENT); 
    //mVideoView.setVideoURI(Uri.parse(path)); 
    mVideoView.setVideoPath(path); 
    //get focus, before playing the video. 
    mVideoView.requestFocus(); 
    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
      public void onPrepared(MediaPlayer mp) {       
      mVideoView.seekTo(mImageSeek); 
      mVideoView.start(); 
     } 
    }); 
0

定義你的資源videoview然後使用此代碼

videoview = (VideoView) findViewById(R.id.videoview_play); 
videoview.setVideoPath(dir + videoName); 
//get focus, before playing the video. 
videoview.setMediaController(new MediaController(this)); 
videoview.requestFocus(); 
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
             public void onPrepared(MediaPlayer mp){       
             videoview.seekTo(5000); 
             videoview.start(); 
             } 
           }); 

您在使用PrepareListener

之前添加.setMediaController(new MediaController(this));

videoview.requestFocus(); 

希望這將有助於你