我有我的主Activity,它以一个名为DrawView的自定义SurfaceView开始,由setContentView设置。主要活动(绘图)中包含以下方法
public void launchCutScene(int scene) {
Intent intent = new Intent(Draw.this, CutScene.class);
startActivityForResult(intent, 0);
}
如果我在setContentView之后直接调用此方法,则新的Activity CutScene会正确加载。 CutScene如下
public class CutScene extends Activity implements OnCompletionListener, OnPreparedListener{
String pathToFile = "";
VideoView videoPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pathToFile = "EM Math/" + "st.mp4";
setContentView(R.layout.main);
File root = Environment.getExternalStorageDirectory();
videoPlayer = (VideoView) findViewById(R.id.myvideoview);
videoPlayer.setOnPreparedListener(this);
videoPlayer.setOnCompletionListener(this);
videoPlayer.setKeepScreenOn(true);
videoPlayer.setVideoPath(root + "/" + pathToFile);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
public void onPrepared(MediaPlayer vp) {
videoPlayer.start();
}
@Override
public void onCompletion(MediaPlayer mp) {
finish();
}
@Override
public boolean onTouchEvent (MotionEvent ev){
if(ev.getAction() == MotionEvent.ACTION_DOWN){
if(videoPlayer.isPlaying()){
videoPlayer.pause();
} else {
videoPlayer.start();
}
return true;
} else {
return false;
}
}
}
但是,如果在DrawView中我调用draw.launchCutScene(0)然后活动仍然出现,但视频出现故障,它仍然保持黑屏,你必须按回来使活动崩溃,在这种情况下它将带来第一项活动。或者它只播放声音但是多次并且未同步。如果在DrawView类中再次执行launchCutScene调用它崩溃之后的任何一种方式,视频现在工作正常。
为什么会这样?有人知道我需要做什么吗?
答案 0 :(得分:0)
好的,精确修复错误!
我所要做的就是将我的线程runnable boolean设置为false,然后调用该活动。一旦活动关闭我的程序重新启动线程,现在一切都工作hunkydorry !!!! ...所以,如果你的视频错误与你的视频观点,这可能是因为你在后台运行一个线程!