我有活动,在此活动中我有视频。在这个视频后,我希望运行另一个活动。我尝试在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();
}
}
答案 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();
}
});