Я пытаюсь создать программу, которая имеет основную активность с 2 setForResults, Изображение 1 , сначала она пошла искать видео в галерее, а затем вернуться к основной деятельности, играя в VideoView в последовательности, Изображение 2 . После этого перейдите к другой операции, которая может поместить субтитры, а затем снова вернитесь к основной активности. Но в это время появляется предупреждение, что это видео не воспроизводится, например Изображение 3 .
И после того, как поставить субтитры и перейти к последнему действию, которое содержит другие VideoView, появляется новое предупреждение, Изображение 4 .
И это мой код в основной деятельности. Я пытался создать глобальные переменные только для тестирования.
Я хочу исправить вид видео, на изображениях 3 и 4. Потому что я тестировал, и моя единственная проблема на данный момент связана с VideoView и MediaPlayer, я не могу снова открыть видео после первого.
public class TelaHome extends Activity {
VideoView video;
int num = 0;
ImageView videocheck;
ImageView legcheck;
Button butvideo;
Button butleg;
Button butstart;
TextView textovideo;
String nomedovideo;
String urivideo;
Uri Uridovideo;
int cont = 0;
int stop = 0;
Boolean simvid = false;
Boolean simleg = false;
Intent videointent;
Intent letraintent;
Bundle pacotemain;
Bundle letra;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tela_home);
butstart = (Button) findViewById(R.id.butstart);
butvideo = (Button) findViewById(R.id.butvideo);
butleg = (Button) findViewById(R.id.butleg);
videocheck = (ImageView) findViewById(R.id.imgvideocheck);
legcheck = (ImageView) findViewById(R.id.imglegcheck);
textovideo = (TextView) findViewById(R.id.textovideo);
textovideo.setMovementMethod(new ScrollingMovementMethod());
video = (VideoView) findViewById(R.id.videoView);
butstart.setVisibility(View.INVISIBLE);
videocheck.setImageResource(R.mipmap.ic_not_checked);
textovideo.setText("");
MediaController mc = new MediaController(this);
mc.setAnchorView(video);
video.setMediaController(mc);
butvideo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
launchMainActivity();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
videointent = data;
pacotemain = videointent.getExtras();
if (pacotemain != null) {
nomedovideo = pacotemain.getString("arquivo");
urivideo = pacotemain.getString("curPF");
if (urivideo != null) {
Uridovideo = Uri.parse(urivideo);
video.setVideoURI(Uridovideo);
video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
video.start();
}
});
}
String formato = "";
char[] lala;
if (nomedovideo != null) {
lala = (nomedovideo.toCharArray());
int x = nomedovideo.length();
for (int i = x - 3; i < x; i++) {
formato = (formato + lala[i]);
}
textovideo.setText(nomedovideo);
}
}
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (video.isPlaying()) {
cont++;
videocheck.setImageResource(R.mipmap.ic_checked);
simvid = true;
}
}
}, 1000);
}
}
if (requestCode == 7) {
if(resultCode == Activity.RESULT_OK){
letraintent = data;
letra = letraintent.getExtras();
if (letra != null){
legcheck.setImageResource(R.mipmap.ic_checked);
simleg = true;
}
}
}
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
abrirplay(simvid,simleg, pacotemain, letra);
}
}, 1500);
}//onActivityResult
Я пробовал несколько раз, например:
Я повторил этот код в защищенном void OnCreate, в «if (resultCode == Activity.CANCELED)» в «requestCode == 1» и «requestCode == 7»
if (pacotemain != null) {
nomedovideo = pacotemain.getString("arquivo");
urivideo = pacotemain.getString("curPF");
if (urivideo != null) {
Uridovideo = Uri.parse(urivideo);
video.setVideoURI(Uridovideo);
video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
video.start();
}
});