Android Media Player - «Невозможно создать медиаплеер» - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь создать программу, которая имеет основную активность с 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();
                            }
                        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...