2013-04-12 29 views
11

Pracuję nad aplikacją, w której muszę odtwarzać wideo ze zdalnego serwera jako transmisję na żywo.Jak wyświetlać pasek postępu do momentu rozpoczęcia odtwarzania wideo w systemie Android?

co zostało wykonane przeze mnie pomyślnie. Zarządzałem każdą rzeczą w mojej aplikacji.

, ale po załadowaniu wideo muszę wyświetlić okno dialogowe postępu w VideoView.

Próbowałem za pomocą OnPreparedListener jako "how to show the progress bar before playing the video"

@Override 
public void onPrepared(MediaPlayer mp) { 
    progressbar.setVisibility(View.GONE); 
    mp.start(); 

} 

gry wideo, ale po 5-7 sek ProgressBar zniknął. Szukałem dużo w Google, ale nie znalazłem dla niego rozwiązania.

Czy ktoś może mi pomóc.

Dzięki z góry.

+0

a także moim zdaniem film jest przejrzysta aż odtwarzania wideo. –

+0

Obserwowałem, że odbiornik "onPrepared" jest wywoływany natychmiast po kliknięciu przycisku, ale odtwarzanie wideo następuje po 5-6 sekundach. dlaczego ten przedział czasu? –

Odpowiedz

26

spojrzeć ten rozwiązać mój problem nadzieja pomocy także ..

http://www.quicktips.in/how-to-show-progressbar-while-loading-a-video-in-android-videoview/

progressbar.setVisibility(View.VISIBLE); 

videoView.setOnPreparedListener(new OnPreparedListener() { 

      @Override 
      public void onPrepared(MediaPlayer mp) { 



       mp.start(); 

       mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() { 

        @Override 
        public void onVideoSizeChanged(MediaPlayer mp, int arg1, int arg2) { 
         // TODO Auto-generated method stub 
         Log.e(TAG, "Changed"); 
         progressbar.setVisibility(View.GONE); 
         mp.start(); 
        } 
       }); 


      } 
     }); 

:)

+0

świetny gość .. rozwiązał mój problem .. ale czy mógłbyś wyjaśnić ten fragment kodu .. Chcę wiedzieć, jaki jest dokładny proces za tym kodem .. –

+1

@DevelopSmart na pewno, jak na dokumenty OnPreparedListener() jest definicja interfejsu dla oddzwanianie do wywołania, gdy źródło multimediów jest gotowe do odtwarzania. po prostu sprawdź moment rozpoczęcia oglądania wideo za pomocą OnVideoSizeChangedListener() i ukryj pasek postępu. –

2

Niezaprzeczalnie nie ma możliwości odsłonięcia urządzenia OnStart przez system Android. Po przygotowaniu stan, MediaPlayer przechodzi do stanu początkowego po rozpoczęciu odtwarzania.

Ale w stanie Przygotowanym tylko powinieneś mieć wystarczający bufor do grania. Czy można użyć setOnBufferingUpdateListener (MediaPlayer.OnBufferingUpdateListener) i wydrukować procent bufora. W ten sposób możesz zobaczyć, czy w Przygotowanym stanie masz wystarczającą ilość bufora, czy nie.