асинхронная задача для получения данных из firebase

Я подал заявку на запуск видео с YouTube



Моя проблема заключается в том, что я помещаю свои ссылки на видео youtube на Firebase



но при запуске activity View YouTube не работает, потому что он принимает значение переменной video for youtube vedio load перед получением значения Firebase


Я хочу способ получить значение перед вводом кода Youtube


вот мой код :

    private TextView mvalueview1;
private Firebase mref;
private YouTubePlayerView youTubePlayerView;
private YouTubePlayer.OnInitializedListener onInitializedListener;
private String x;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //fullscreenANDtoolbar();

    setContentView(R.layout.watch_youtube);


    mref = new Firebase("Link_of_firebase_value");
    mvalueview1 = (TextView) findViewById(R.id.textView5);
    mref.addValueEventListener(new ValueEventListener() {
        @Override
                  public void onDataChange(DataSnapshot dataSnapshot) {

            String value = dataSnapshot.getValue(String.class);
            mvalueview1.setText(value);
            x = value;
        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });

 youTubePlayerView = (YouTubePlayerView) findViewById(R.id.youtubeview);
     final TextView txtView = (TextView) findViewById(R.id.text);
    txtView.setText(x);
    onInitializedListener = new YouTubePlayer.OnInitializedListener() {
        final String VedioUrl = txtView.getText().toString();

        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
            youTubePlayer.loadVideo(VedioUrl);
        }

        @Override
        public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

        }
    };
    youTubePlayerView.initialize("API_KEY", onInitializedListener);

}

1 ответ

  1. Я предлагаю вам использовать библиотеку Rxjava для цепочки всех действий одно за другим —
    сначала вы получаете видео путь из базы данных, затем подождите, пока плеер не будет готов, а затем дождитесь завершения обеих этих задач .промелькнуть.)(первый оператор() и в качестве ответа начать воспроизведение видео