我正在使用带有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;
}
}
答案 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) {
}
});
希望这有帮助。