Видео не может быть включено в onActivityResult () - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть два действия: MainActivity имеет youtubePlayerView для отображения видео с YouTube и кнопку «Выбор», ChoseVideoActivity имеет 2 кнопки с текстом «Video1» и «Video2».

В MainActivity я нажал кнопку «Выбор», чтобы открыть ChoseVideoActivityChoseVideoActivity я мог бы нажать любую из двух кнопок.

Когда нажата кнопка с текстом «video1», действие отсылает YouTube ID видео 1. Когда кнопка с текстом «video2»по щелчку, действие отправляет обратно идентификатор YouTube видео 2.

В onActivityResult я звоню cueVideo() с идентификатором, который отправляется обратно.Это должно было сработать, но это не сработало.Он работал нормально, когда я работаю в том же упражнении.

Я использовал API проигрывателя YouTube для Android.

onActivityResult () в MainActivity

 private void addEvents() {
    btChose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, ChoseVideoActivity.class);
            startActivityForResult(intent,REQUEST_CODE);
        }
    });
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == REQUEST_CODE && resultCode == RESULT_OK && data!=null) 
    {
        String link = data.getStringExtra("LINK");
        player.cueVideo(link);
        Toast.makeText(this, link, Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
    player = youTubePlayer;
}

@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
    Toast.makeText(this, "Error!",Toast.LENGTH_LONG).show();
}

Нажмите слушателя в ChoseVideoActivity

private void addEvents() {
    btVideo1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("LINK",link_video1);
            setResult(RESULT_OK,intent);
            finish();

        }
    });
    btVideo2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.putExtra("LINK",link_video2);
            setResult(RESULT_OK,intent);
            finish();

        }
    });
}

1 Ответ

0 голосов
/ 28 ноября 2018

Поскольку я новичок здесь, я не могу комментировать ваше сообщение.Ваш код, кажется, в порядке.Так как мы не видим, как вы открываете следующее действие, я хочу убедиться, действительно ли вы используете функцию startActivityForResult для открытия второго действия?Как это:

Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, 0);
...