如何在VideoView结束后启动活动
问题描述:
我有活动,在此活动中我有视频。在这段视频后,我希望开展另一项活动。我尝试在Java中做出愚蠢的东西:)但它不起作用。帮帮我吧。没有我的馊主意我清楚Java代码:)我希望你能帮助我:)如何在VideoView结束后启动活动
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();
}
}
答
也许你可以创建一个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
之前,所以我不知道它有什么其他功能!
答
这就是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。
答
这其中有一个延迟的情况下,视频仍在加载和不是在玩
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);
答
只需添加
mediaplayer.setLooping(true)
,如果你想重复这个视频。它会开始重演。
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);//for repeating the same Video
mVideoView.start();
}
});
你能帮助我的代码?:) – 2012-01-10 18:42:22
刚刚发布的代码。 – Neeta 2012-01-10 18:45:50