2011-11-22 41 views
9

Tôi đang làm Hướng dẫn lập trình Android trên màn hình Splash nơi bạn hiển thị ảnh hoặc văn bản trong 5 giây so với ứng dụng chính. Câu hỏi của tôi là..Khi văn bản hoặc hình ảnh tôi muốn hiển thị một tập tin video trong 5 giây trước khi nó đi đến trang tiếp theo của ứng dụng.Video dưới dạng Màn hình Splash thay vì Hình ảnh

Tôi không nói về thời điểm tải ứng dụng tôi đang nói khi được tải và bạn lập trình để hiển thị nội dung nào đó trên trang XML riêng lẻ & để hiển thị nội dung nào đó rồi chuyển sang mục khác..tại đây là mã hiện tại của tôi .

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

Vì vậy, tôi phải làm gì để làm cho nó hiển thị một tập tin video thông tín không Start/Stop vv ..

+0

Kiểm tra điều này http://www.gadgetsaint.com/android/create-video-splash-screen-android/ – ASP

Trả lời

4

Sử dụng một MediaPlayer cùng với một VideoView. Sau đó, bạn có thể "nghe" khi phát lại video, bằng cách đặt OnCompletionListener trên số MediaPlayer của bạn.

Xem ở đây: http://developer.android.com/reference/android/media/MediaPlayer.html Và ở đây: http://developer.android.com/reference/android/widget/VideoView.html

Ngoài ra, đặc biệt chú ý đến các sơ đồ trạng thái trên trang MediaPlayer tham khảo. Nó có thể là một chút khôn lanh và đã được biết đến để chuyến đi một vài người lên.

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

Đây là đoạn mã để thêm video. Trong trường hợp bạn cần phải thêm điều khiển trên video như tạm dừng hoặc tìm kiếm vv bạn có thể thêm chúng với :

vv.setMediaController (mới MediaController (this));

Phần còn lại của các mã:

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) Tạo lớp SplashScreen.java.

2) Tạo thư mục thô bên trong thư mục res (res/raw).

3) Dán tệp video mp4 của bạn vào thư mục thô này (nếu bạn không có bất kỳ mẫu mp4 nào, bạn có thể tải xuống từ liên kết bên dưới). http://www.mediafire.com/download/p05ki89i2dt5x2x/splash.mp4

4) Sau đó thêm mã sau vào lớp SplashScreen.java của bạn.

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

}

Lưu ý: splash_activity.xml là không cần thiết.

+0

Có thể căn giữa video không? – Thecave3

Các vấn đề liên quan