2014-06-18 85 views
2

我對Android中的MediaControllerVideoView API感到困惑。Android - 在哪裏使用VideoView和MediaController實現onBufferingUpdate(...)

我正在使用它通過HTTP流式傳輸視頻,這是工作正常。唯一的問題是它不時停下來緩衝。我現在希望在視頻開始緩衝以顯示進度指示符時收到通知。

我才知道,我需要實現從android.media.MediaPlayer.OnBufferingUpdateListenerpublic abstract void onBufferingUpdate (MediaPlayer mp, int percent),我的問題就是在哪裏我要實現它?我是來自其他的意見,使問題並實施:

videoView.setOnPreparedListener(new OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      Log.d(Constants.LOG, "onPrepared called"); 

      mp.setOnBufferingUpdateListener(new OnBufferingUpdateListener() { 
       @Override 
       public void onBufferingUpdate(MediaPlayer mp, int percent) { 
       //do something 
        Log.d(Constants.LOG, "Buffering update: " + percent + "%"); 

       } 
      }); 
     } 

但它沒有工作......我一定要繼承VideoView並實施有?

+0

弄來解決這個問題?我面對相同的:( – Neha

回答

0

作品:

VideoView myVideoView = (VideoView)this.findViewById(R.id.video_view); 

myVideoView.setOnPreparedListener(new OnPreparedListener() 
     { 
      @Override 
      public void onPrepared(MediaPlayer mp) 
       { 

        myVideoView.start(); 

        if (dialog != null) 
         dialog.dismiss(); 

        mp.setOnBufferingUpdateListener(new OnBufferingUpdateListener() 
        { 
         @Override 
         public void onBufferingUpdate(MediaPlayer mp, int percent) 
         { 

          Log.d("URL", "Buffering update: " + percent + "%"); 

         } 
        }); 


      } 
     });   

     Dialog dialog = new ProgressDialog(VideoActivity.this); 
     dialog.setMessage("Loading ..."); 
     dialog.setCancelable(true); 
     dialog.setInverseBackgroundForced(false); 

     myVideoView.setVideoURI(Uri.parse("http://...")); 
相關問題