2011-11-22 20 views
9

Estoy haciendo el tutorial de programación de Android en pantallas de bienvenida donde muestra una imagen o texto durante 5 segundos de lo que va a la aplicación principal. Mi pregunta es ... En lugar de texto o imágenes, quiero mostrar un archivo de video por 5 segundos antes de ir a la página siguiente de la aplicación.Video como pantalla de bienvenida en lugar de imagen

No estoy hablando de cuándo carga la aplicación que estoy hablando cuando está cargada y la programa para mostrar algo en una página XML de Java & para mostrar algo y luego cambiar a otra cosa ... aquí está mi código actual .

@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(); 
} 

Entonces, ¿qué puedo hacer para que se muestre un archivo de vídeo de medios sin el Start/Stop, etc ..

+0

Mira esto http://www.gadgetsaint.com/android/create-video-splash-screen-android/ – ASP

Respuesta

4

Utilice un MediaPlayer junto con una VideoView. Luego puede "escuchar" cuando termine la reproducción del video, configurando OnCompletionListener en su MediaPlayer.

Ver aquí: http://developer.android.com/reference/android/media/MediaPlayer.html Y aquí: http://developer.android.com/reference/android/widget/VideoView.html

También, preste especial atención al diagrama de estado en la página MediaPlayer referencia. Puede ser un poco complicado y se sabe que hizo tropezar a algunas personas.

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

Este es el código para añadir vídeo. En caso de tener que añadir controles de vídeo como de pausa o buscar etc puede agregar con :

vv.setMediaController (nueva MediaController (este));

resto del código:

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) Crear la clase SplashScreen.java.

2) Cree una carpeta sin procesar dentro del directorio res (res/raw).

3) Pegue su archivo de video mp4 en esta carpeta sin procesar (si no tiene ninguna muestra mp4, puede descargar desde el siguiente enlace). http://www.mediafire.com/download/p05ki89i2dt5x2x/splash.mp4

4) A continuación, agregue el siguiente código en su clase 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: no se requiere splash_activity.xml.

+0

¿Es posible centrar el video? – Thecave3

Cuestiones relacionadas