从当前活动视图调用意图时视频视图活动功能故障



我有我的主活动,它从setContentView设置的名为DrawView的自定义SurfaceView开始。主活动(抽奖)在中有以下方法

public void launchCutScene(int scene) {     
    Intent intent = new Intent(Draw.this, CutScene.class);
    startActivityForResult(intent, 0);  
}

如果在setContentView之后直接调用此方法,则新的活动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调用,视频现在可以正常工作。

为什么会发生这种情况?有人明白我需要做什么吗?

好的,很好地修复了错误!

我所要做的就是将线程可运行布尔值设置为false,然后调用活动。一旦活动关闭,我的程序就会重新启动线程,现在一切都很顺利!!!!。。。所以,如果你的视频视图出现了这个视频错误,那可能是因为你在后台运行了一个线程!

最新更新