Android总是播放介绍剪辑

时间:2009-10-14 19:29:35

标签: android video

我正在尝试让我的应用程序只在我开始activities时播放介绍剪辑。 但是从我的代码开始,在恢复到应用程序之前唤醒它总是播放剪辑,尽管我没有关闭应用程序。我该怎么做才能解决这个问题?

来自main:

startActivity(new Intent(this, MyIntro.class));

来自MyIntro:

public class MyIntro extends Activity implements OnCompletionListener {

    int a;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.intro);
        playIntro();
    }

    public void onConfigurationChanged(Configuration newConfig) {
        setContentView(R.layout.intro);
    }

    public void onCompletion(MediaPlayer arg0) {
        // TODO Auto-generated method stub
        this.finish();
    }

    private void playIntro(){
        setContentView(R.layout.intro);

        VideoView video = (VideoView) this.findViewById(R.id.VideoView01);

        Uri uri = Uri.parse("android.resource://real.app/" + R.raw.intro);
        video.setVideoURI(uri);
        video.requestFocus();
        video.setOnCompletionListener(this);

        video.start();  
    }

}

2 个答案:

答案 0 :(得分:0)

您在主Activity - 您调用的那个

中覆盖了哪些功能
startActivity(new Intent(this, MyIntro.class))

我认为它是onResume()并且由于这个原因,上面的行被执行了太多次。再次阅读Activity生命周期here的解释,当我遇到类似问题时,这是我做的第一件事。

请回复我们,了解有关主Activity的更多信息。

答案 1 :(得分:0)

邪恶的黑客:

添加一个静态指针指向您自己的活动,在调用“onCreate”时填充或覆盖它。如果它为null,则播放您的电影,否则播放。 你可以用静态布尔值做同样的事。

private static boolean isRunning = false;

protected void onCreate(Bundle bundle) {
    super.onCreate(bundle)
    if(!isRunning)
    {
        isRunning = true;
        //Play your video here
    }
}

有更多优雅和正确的方法可以做到这一点,但如果你赶时间,这可能会有用。