2

Android의 MediaControllerVideoView API에 혼란 스럽습니다.Android - VideoView 및 MediaController를 사용하여 onBufferingUpdate (...)를 구현하는 위치

HTTP를 통해 동영상을 스트리밍하는 데 사용하고 있습니다. 정상적으로 작동합니다. 문제는 때때로 버퍼링이 중지된다는 것입니다. 이제 비디오가 진행 표시기를 표시하기 위해 버퍼링을 시작할 때마다 알림을 받고 싶습니다. 내가 android.media.MediaPlayer.OnBufferingUpdateListener에서 public abstract void onBufferingUpdate (MediaPlayer mp, int percent)을 구현해야한다는 것을 배웠다

, 내 질문은 내가을 구현해야 할 입니까? 나는 다른 조언 SO 질문 및 구현 다음 :

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://..."));