2011-05-02 3 views
10

비디오가 버퍼링되는 동안 VideoView가 재생되기 전에 로딩 애니메이션 (또는 단지 imageView)을 보여주는 솔루션을 찾지 못했습니다.VideoView 시작 전 안드로이드 로딩 애니메이션

단서가 있습니까?

감사합니다.

+1

이해하기 힘들지만 원하는 것은 불확실한 진행률 표시 줄입니다. – user432209

+0

내가 분명하지 않으면 죄송합니다. 내 VideoView는 스트리밍 비디오를 재생합니다. 그래서 활동이 시작될 때 비디오가 버퍼링되는 동안에 만 검은 색 화면 만 보입니다. 예를 들어 YouTube 앱을 살펴보면 동영상이로드 중임을 설명하는 애니메이션이 있으며 진행 상황에 맞지 않는 진행률 표시 줄이라고 생각하지 않습니다. 어떻게 비디오 버퍼링을 감지 할 수 있습니까? 감사합니다. – magiccyril

답변

6

마지막으로 VideoView에서 setOnPreparedListener() 메서드를 발견했습니다.

나는 나의 레이아웃 내부의 ProgressBar를 추가하고, OnPreparedListener

+0

감사합니다. 나는 이것도 같이 갔다! – user123321

40

아니면 그냥 진행 대화 상자를 사용할 수 그것을 숨길;

public class VideoEkrani extends Activity { 

    VideoView ekran; 
    String kaynakYolu = "http://commonsware.com/misc/test2.3gp"; 
    ProgressDialog progDailog; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.sayfa_video_goruntule); 


     ekran = (VideoView) findViewById(R.id.videoViewESPU); 
     ekran.setMediaController(new MediaController(this)); 
     ekran.setVideoURI(Uri.parse(kaynakYolu)); 
     ekran.requestFocus(); 
     ekran.start(); 

     progDailog = ProgressDialog.show(this, "Please wait ...", "Retrieving data ...", true); 

     ekran.setOnPreparedListener(new OnPreparedListener() { 

      public void onPrepared(MediaPlayer mp) { 
       // TODO Auto-generated method stub 
       progDailog.dismiss(); 
      } 
     }); 
    } 
} 
+3

당신은 내 생명을 구했어 !! @Amourreux에 감사드립니다. 스택 오버플로에 대해 사람들에게 감사하는 것은 부끄럽지만, VideoView에서 문제가 발생하는 경우이를 해결할 수 있다는 점을 사람들에게 알리지 않고 진행할 수는 없습니다. :) – Prachi

+0

사용자가 비디오를 찾는다면 어떻게 다시 진행할 때까지 progressBar를 넣을 수 있습니까? –

+0

@ Mr.G 잘 모르겠지만 MediaController에서 이벤트를 관리하고 있습니다. 다시 나는 확실하지 않다. 내가 너의 질문을 정확하게 이해한다면. 그렇지 않다면 좋고 새로운 질문 게시일 수 있습니다. –

3

당신은 MediaPlayerOnBufferingUpdateListener를 사용하여 비디오 버퍼를 감지 기운 다. VideView을 사용하는 경우 청취자를 OnPreparedListener 안에 설정하십시오.

videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    public void onPrepared(MediaPlayer mp) { 
    mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { 
     @Override 
     public void onBufferingUpdate(MediaPlayer mp, int percent) { 
     if(percent == 100){ 
      //video have completed buffering 
     } 
     } 
    }); 
    } 
});