使用Android中的Firebase在应用程序中添加Youtube API

时间:2017-08-05 09:07:16

标签: android firebase firebase-realtime-database youtube-api android-youtube-api

我正在使用带有Firebase的Android Studio 作为数据库并希望用它实现 Youtube API ,我想要的是输入网址 Firebase数据库中的强大视频,它应该可以在我的应用程序中提供视频。我已成功实现图像和文字,但不知道如何使其与视频一起工作,请帮忙。我已经标记了我遇到问题的代码行,在下面的代码中突出显示为“THIS CODE”。请问我你不明白的是什么。

  

我正在使用Android Studio和Firebase

Firebase Recycler Adapter类

FirebaseRecyclerAdapter <post, postViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<post, postViewHolder>(

        post.class,
        R.layout.post_row_recycle_home,
        postViewHolder.class,
        mDatabaseReference
) {
    @Override
    protected void populateViewHolder(postViewHolder viewHolder, post model, int position) {
        viewHolder.setTitle(model.getTitle());
        viewHolder.setdescription(model.getDescription());
        viewHolder.setimage(getApplicationContext(), model.getImage());
        viewHolder.setsource(model.getSource());
        viewHolder.setYoutube(getApplicationContext(),model.getYoutube());
    }
};
mrecyclerView.setAdapter(firebaseRecyclerAdapter);
}

public static class postViewHolder extends RecyclerViewPager.ViewHolder{
View mView;

public postViewHolder(View itemView) {
    super(itemView);
    mView = itemView;
}

public void setTitle(String title){
    TextView post_title = (TextView)mView.findViewById(R.id.title_cardView);
    post_title.setText(title);
}
public void setsource(String source){
    TextView post_source = (TextView)mView.findViewById(R.id.source_cardView);
    post_source.setText(source);
}

public void setdescription(String description){
    TextView post_description = (TextView)mView.findViewById(R.id.description_cardView);
    post_description.setText(description);
}
public void setYoutube(final Context context, final String youtube){
    final YouTubePlayer youPlay = (YouTubePlayer)mView.findViewById(R.id.youtuber);
    youPlay.with(context).loadVideo(youtube); // <----- THIS CODE
}

public void setimage(final Context ctx, final String image){
    final ImageView post_image = (ImageView)mView.findViewById(R.id.post_image);
    Picasso.with(ctx).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(post_image, new Callback() {

        @Override
        public void onSuccess() {
        }
        @Override
        public void onError() {
            Picasso.with(ctx).load(image).into(post_image);
        }
    });
}
}

为getter和setter发布课程

public class post {

private String title;
private String description;
private String image;
private String source;
private String youtube;


public String getSource() {
    return source;
}

public void setSource(String source) {
    this.source = source;
}

public post(){
}

public post(String title, String description, String image, String source,String youtube) {
    this.title = title;
    this.description = description;
    this.image = image;
    this.source = source;
    this.youtube = youtube;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getYoutube() {
    return youtube;
}

public void setYoutube(String youtube) {
    this.youtube = youtube;
}
}

1 个答案:

答案 0 :(得分:0)

您可以使用YouTube Android Player API

  

YouTube Android Player API可让您将视频播放功能整合到Android应用程序中。 API定义了加载和播放YouTube视频(和播放列表)以及自定义和控制视频播放体验的方法。

     

使用API​​,您可以将视频加载或提示到应用程序UI中嵌入的播放器视图中。然后,您可以以编程方式控制播放。例如,您可以播放,暂停或搜索当前加载的视频中的特定点。

     

您还可以注册事件侦听器以获取某些事件的回调,例如加载视频的播放器或更改播放器状态。最后,API具有辅助功能,以支持方向更改以及过渡到全屏播放。

您可以按照related SO post提供的代码实现:

youTubePlayerView.initialize("YOUR API KEY",
            new YouTubePlayer.OnInitializedListener() {
                @Override
                public void onInitializationSuccess(YouTubePlayer.Provider provider,
                        YouTubePlayer youTubePlayer, boolean b) {


                    youTubePlayer.loadVideo("VIDEO_ID_HERE");
                }
                @Override
                public void onInitializationFailure(YouTubePlayer.Provider provider,
                        YouTubeInitializationResult youTubeInitializationResult) {

                }
    });

希望这有帮助。