从firebase获取数据的异步任务

时间:2016-11-01 17:32:44

标签: java android eclipse android-studio android-asynctask

我申请从YouTube投放视频

我的问题是我将我的YouTube视频链接放在Firebase上

但是在开始活动时查看YouTube无效,因为在获取Firebase的值之前,它会为youtube vedio加载变量视频的值

我想要一种在输入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 个答案:

答案 0 :(得分:0)

我建议您使用Rxjava库逐个链接所有操作 - 首先从数据库获取视频路径,然后等待播放器准备就绪,然后等待这两个任务完成.zip()。first()运算符和响应开始播放视频