2011-11-22 18 views
9

Sto facendo l'esercitazione di programmazione Android su Splash Screens in cui si mostra un'immagine o un testo per 5 secondi rispetto all'applicazione principale. La mia domanda è ... Invece di testo o immagini Voglio visualizzare un file video per 5 secondi prima che passi alla pagina successiva dell'applicazione.Video come schermata iniziale invece di Immagine

Non sto parlando di quando si carica l'applicazione di cui sto parlando quando viene caricata e la si programma per visualizzare qualcosa su una pagina XML Java separata & per visualizzare qualcosa, quindi passare a qualcos'altro ... c'è il mio codice corrente .

@Override 
protected void onCreate(Bundle SplashScreen1) { 
    // TODO Auto-generated method stub 
    super.onCreate(SplashScreen1); 
    setContentView(R.layout.splash); 
    ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound); 
    ourSong.start(); 
    Thread timer = new Thread(){ 
     public void run(){ 
      try{ 
       sleep(5000); 
      } catch (InterruptedException e){ 
       e.printStackTrace(); 
      }finally{ 
       Intent openStartingPoint = new Intent("com.Player.Splash.STARTINGPOINT"); 
       startActivity(openStartingPoint); 

      } 
     } 
    }; 
    timer.start(); 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 
} 

Quindi cosa devo fare per renderlo visualizzare un file Video Media senza l'avvio/arresto, ecc ..

+0

Controlla questo http://www.gadgetsaint.com/android/create-video-splash-screen-android/ – ASP

risposta

4

Utilizzare un MediaPlayer insieme a un VideoView. È quindi possibile "ascoltare" quando viene eseguita la riproduzione del video, impostando uno OnCompletionListener su MediaPlayer.

vedere qui: http://developer.android.com/reference/android/media/MediaPlayer.html E qui: http://developer.android.com/reference/android/widget/VideoView.html

Inoltre, prestare particolare attenzione al diagramma di stato sulla pagina MediaPlayer di riferimento. Può essere un po 'complicato ed è stato conosciuto per far inciampare alcune persone.

1
imgAnim=(VideoView)findViewById(R.id.animimage); 

String uriPath = "android.resource://com.petnvet/" + R.drawable.vidio; 
Uri uri = Uri.parse(uriPath); 
imgAnim.setVideoURI(uri); 
imgAnim.requestFocus(); 
imgAnim.start(); 
// imgAnim.setVideoPath("android.resource://com.myapplication/" + R.drawable.vidio); 
int SPLASH_DISPLAY_LENGTH = 3000; 
new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     Intent mainIntent = new Intent(SplashScreen.this, Login.class); 
     startActivity(mainIntent); 
     finish(); 
    } 
}, SPLASH_DISPLAY_LENGTH); 
0

Ecco il codice per l'aggiunta di video. Nel caso in cui sia necessario aggiungere controlli su video come pausa o ricerca, ecc. È possibile aggiungerli con :

vv.setMediaController (new MediaController (this));

resto del codice:

VideoView vv; 

@Override 

protected void onCreate(Bundle savedInstanceState) 

{ 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_splash); 

    vv=(VideoView)findViewById(R.id.videoView); 
    Uri path=Uri.parse("android:resource://"+getPackageName()+"/"+R.raw.hello); 
    vv.setVideoURI(path); 
    vv.setMediaController(new MediaController(this)); 

    vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() 
    { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      Intent in=new Intent(splash.this,MainActivity.class); 
     startActivity(in); 
      finish(); 

     } 
    }); 
    vv.start(); 
5

1) Crea classe SplashScreen.java.

2) Creare una cartella raw all'interno della directory res (res/raw).

3) Incolla il tuo file video mp4 in questa cartella raw (se non hai alcun esempio di mp4, puoi scaricarlo dal link sottostante). http://www.mediafire.com/download/p05ki89i2dt5x2x/splash.mp4

4) Quindi aggiungere il seguente codice nella classe SplashScreen.java.

public class SplashScreenActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    try { 
     VideoView videoHolder = new VideoView(this); 
     setContentView(videoHolder); 
     Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.splash); 
     videoHolder.setVideoURI(video); 

     videoHolder.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
       jump(); 
      } 
     }); 
     videoHolder.start(); 
    } catch (Exception ex) { 
     jump(); 
    } 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    jump(); 
    return true; 
} 

private void jump() { 
    if (isFinishing()) 
     return; 
    startActivity(new Intent(this, MainActivity.class)); 
    finish(); 
} 

}

Nota: splash_activity.xml non è richiesto.

+0

È possibile centrare il video? – Thecave3

Problemi correlati