2011-11-22 26 views
9

私は、メインアプリケーションに行くよりも5秒間画像やテキストを表示する、スプラッシュ画面に関するAndroidプログラミングチュートリアルを行っています。私の質問は..テキストまたは画像の代わりにアプリケーションの次のページに行く前に5秒間ビデオファイルを表示したいです。画像の代わりに画像をスプラッシュ画面として

ロード時にアプリケーションロードが話題になり、別のJava & XMLページに何かを表示して何かを表示し、何か他のものに移動するようプログラムすると、現在のコードがあります。

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

だから私はそれがスタート/ストップなどせずにビデオのメディアファイルを表示するために行うのですか何..

+0

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

答えて

4

使用VideoViewとともにMediaPlayerMediaPlayerOnCompletionListenerを設定すると、ビデオの再生が完了したときに「聴く」ことができます。

こちらをご覧ください:http://developer.android.com/reference/android/media/MediaPlayer.html そして、ここで:http://developer.android.com/reference/android/widget/VideoView.html

はまた、MediaPlayerリファレンスページの状態図に特別な注意を払います。それは少しトリッキーなことができ、いくつかの人々を旅行することが知られています。

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

は、ビデオを追加するためのコードです。あなたが一時停止やシークのようなビデオにコントロールを追加する必要がある場合は、 で追加できます。

vv.setMediaController(new MediaController(this));コードの

レスト:

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)SplashScreen.javaクラスを作成します。

2)resディレクトリ内にrawフォルダを作成します(res/raw)。

3)mp4ビデオファイルをこの生のフォルダに貼り付けます(サンプルmp4がない場合は、下のリンクからダウンロードできます)。 http://www.mediafire.com/download/p05ki89i2dt5x2x/splash.mp4

4)次に、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(); 
} 

}

注splash_activity.xmlが必要とされません。

+0

ビデオを中央に配置することは可能ですか? – Thecave3

関連する問題