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

Jes*_*ter 13 audio video android splash-screen

我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)

那么我该怎么做才能让它显示一个没有启动/停止等的视频媒体文件.

Sur*_*r D 11

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();
}
Run Code Online (Sandbox Code Playgroud)

}

注意:不需要splash_activity.xml.

  • @ArielCarbonaro仅供参考,我几个月前已经实施了此解决方案,结果却造成了很大的质量损失。我认为最好的解决方案是分割视频并创建动画视图。 (2认同)

Dwi*_* Ji 8

我希望这能帮到您.您只需创建一个简单的VideoView即可为视频创建启动画面.

检查源代码听取和简单步骤创建启动屏幕的最佳做法


Lux*_*ode 5

使用MediaPlayer了一起VideoView.然后,您可以通过设置OnCompletionListener打开来"监听"视频播放完成的时间MediaPlayer.

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

另外,请特别注意MediaPlayer参考页面上的状态图.它可能有点棘手,并且已经知道可以绊倒几个人.