2013-04-12 7 views
11

Ich arbeite an einer Anwendung, wo ich Video von einem Remote-Server als Live-Stream wiedergeben muss.Wie wird Fortschrittsbalken angezeigt, bis das Video im Android-Live-Stream abgespielt wird?

was von mir erfolgreich erledigt wird. Ich habe alles in meiner App verwaltet.

aber wenn Video geladen wird, muss ich einen Fortschrittsdialog über VideoView zeigen.

Ich habe versucht, mit OnPreparedListener als "how to show the progress bar before playing the video"

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

} 

aber Videospiel nach 5-7 Sec von progressbar gegangen. Ich habe viel auf Google gesucht, aber keine Lösung dafür gefunden.

Konnte mir jemand helfen.

Vielen Dank im Voraus.

+0

und auch Ansicht ist mein Video gelöst transparent bis Video abgespielt wird. –

+0

Ich habe beobachtet, dass 'onPrepared' Listener sofort anrief, wenn ich auf den Button klicke, aber nach 5-6 Sek. Video abspielen. Warum dieses Zeitintervall? –

Antwort

26

haben einen Blick dieses mein Problem Hoffnung auch Ihnen helfen ..

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

großer Kerl .. löste mein Problem .. aber könnten Sie bitte diesen Codestück erklären .. Ich möchte wissen, was ist der genaue Prozess hinter diesem Code .. –

+1

@DevelopSmart sicher, wie Dokumente OnPreparedListener() ist Interface-Definition für eine Callback wird aufgerufen, wenn die Medienquelle für die Wiedergabe bereit ist. Überprüfen Sie einfach den Startzeitpunkt der Videoansicht mit OnVideoSizeChangedListener() und blenden Sie Ihre Fortschrittsanzeige aus. –

2

Unvergesslich gibt es keine OnStart Listener von Android aussetzen. Nach dem Prepared State wechselt der MediaPlayer in den Startzustand, sobald die Wiedergabe gestartet wurde.

Aber im vorbereiteten Zustand sollten Sie nur genügend Puffer haben, um zu spielen. Können Sie den setOnBufferingUpdateListener (MediaPlayer.OnBufferingUpdateListener Listener) verwenden und den Prozentsatz des Puffers ausgeben. So können Sie sehen, ob Sie im Prepared State genügend Puffer haben oder nicht.