视频作为启动画面而不是图片

时间:2011-11-22 02:14:27

标签: android audio video splash-screen splash

我正在使用Splash Screens上的Android编程教程,您可以在其中显示5秒的图片或文本,而不是主应用程序。我的问题是......而不是文字或图片我想要在进入应用程序的下一页之前显示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();
}

那么我该怎么做才能让它在没有开始/停止等情况下显示视频媒体文件。

5 个答案:

答案 0 :(得分:10)

1)创建SplashScreen.java类。

2)在res目录(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。

答案 1 :(得分:8)

我希望这会对你有所帮助。您只需创建一个简单的VideoView即可为视频创建启动画面。

结帐 source code 听取并simple steps what is the best practice to create a splash screen

答案 2 :(得分:5)

使用MediaPlayerVideoView。然后,您可以通过在OnCompletionListener上设置MediaPlayer来“收听”视频播放完成时间。

见这里:http://developer.android.com/reference/android/media/MediaPlayer.html 在这里:http://developer.android.com/reference/android/widget/VideoView.html

另外,请特别注意MediaPlayer参考页面上的状态图。这可能有点棘手,并且已经知道会让一些人绊倒。

答案 3 :(得分: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);

答案 4 :(得分: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();