如何在VideoView结束后开始活动

时间:2012-01-10 18:24:05

标签: java android

我有活动,在此活动中我有视频。在这个视频后,我希望运行另一个活动。我尝试在java中制作愚蠢的东西:)但它不起作用。帮帮我吧我清楚的java代码没有我的愚蠢想法:)我希望你帮助我:))

package com.mem.good;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class MemActivity extends Activity {


        @Override

        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.main);

        VideoView videoView = (VideoView) findViewById(R.id.videoview);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        Uri video = Uri.parse("/sdcard/memapp/load.mp4");
        videoView.setVideoURI(video);
        videoView.start();
            }


        }

4 个答案:

答案 0 :(得分:9)

这是MediaPlayer.OnCompletionListener的用途。检查视频是否正在播放不会告诉您用户是否因为某些原因在完成之前暂停了该视频。

只需致电setOnCompletionListener()上的VideoView并注册回调即可。在视频成功完成的情况下以及由于错误而终止播放时,将同时调用回调。所以......

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        //Start a new activity or do whatever else you want here
    }
});

您也可以查看VideoView Documentation其他有用的方法。

HTH。

答案 1 :(得分:1)

您可以创建一个Thread来检查是否videoView.isPlaying()。当它返回False时,您可以打开新的activity

Thread t = new Thread(){
    public void run(){

        while (videoView.isPlaying() == True)
        {  
            try{
                sleep(1000);
            }
            catch(Exception e){};


        }
        Intent h = new Intent(this, new.class); 
        startActivity(h);
    }
};
t.start();

但我之前没有使用VideoView所以我不知道它有什么其他功能!

答案 2 :(得分:0)

如果视频仍在加载且未播放

,则会延迟播放
new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Thread t = new Thread(){
                    public void run(){

                        while (video.isPlaying() == true)
                        {  
                            try{
                                sleep(1000);
                            }
                            catch(Exception e){};


                        }
                        Intent in = new Intent(getApplicationContext(),
                                Main_Activity.class);
                        startActivity(in);
                    }
                };
                t.start();

            }
        }, 2000);

答案 3 :(得分:0)

  

如果您想重复此视频,只需添加mediaplayer.setLooping(true)即可。它将开始重复。

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mp.setLooping(true);//for repeating the same Video
                    mVideoView.start();
                }
            });