从android中的firebase中检索视频

时间:2017-12-18 11:36:36

标签: java android firebase firebase-realtime-database firebase-storage

大家好我通过活动成功将视频上传到firebase,现在我想将它们视为recyclerview但是我没有把它弄好

blog_row.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="3dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <VideoView
            android:id="@+id/post_video"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true" />

        <TextView
            android:id="@+id/post_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="1dp"
            android:paddingLeft="5dp"
            android:text="Post Title Goes Here"
            android:textColor="@android:color/black"
            android:textSize="14sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/post_desc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="5dp"
            android:paddingLeft="5dp"
            android:text="The Post description goes here"
            android:textColor="@android:color/holo_red_light"
            android:textSize="13sp"
            android:textStyle="bold" />

    </LinearLayout>

</android.support.v7.widget.CardView>

LatestVideos.java

public class Latest extends Fragment{

    private RecyclerView mBlogList;
    private GridLayoutManager gridLayoutManager;
    private DatabaseReference mDatabase;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.tab1, container, false);

        mDatabase = FirebaseDatabase.getInstance().getReference().child("videos");

        mDatabase.keepSynced(true);

        mBlogList = (RecyclerView) view.findViewById(R.id.blog_list);
        mBlogList.setHasFixedSize(true);
        mBlogList.setLayoutManager(new LinearLayoutManager(getContext()));


        FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(getActivity(), UploadActivity.class);
                startActivity(intent);
            }
        });


        return view;
    }

    @Override
    public void onStart() {
        super.onStart();


        FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, Latest.BlogViewHolder>(
                Blog.class,
                R.layout.blog_row,
                Latest.BlogViewHolder.class,
                mDatabase

        ) {
            @Override
            protected void populateViewHolder(Latest.BlogViewHolder viewHolder, Blog model, int position) {

                viewHolder.setTitle(model.getTitle());
                viewHolder.setDesc(model.getDesc());
                viewHolder.setImage(getActivity().getApplicationContext(),model.getImage());

            }
        };

        mBlogList.setAdapter(firebaseRecyclerAdapter);


    }

    public static class BlogViewHolder extends RecyclerView.ViewHolder{

        View mView;


        public BlogViewHolder(View itemView) {
            super(itemView);

            mView = itemView;
        }
        public void setTitle(String title){
            TextView post_title = (TextView) mView.findViewById(R.id.post_title);
            post_title.setText(title);
        }

        public void setDesc(String desc){
            TextView post_desc = (TextView) mView.findViewById(R.id.post_desc);
            post_desc.setText(desc);
        }

        public void setImage(Context ctx, String video){
            VideoView post_video = (VideoView) mView.findViewById(R.id.post_video);
            load(video).into(post_video);
        }
    }

    public void onResume(){
        super.onResume();

        // Set title bar
        ((MainContent) getActivity())
                .setActionBarTitle("Lol Videos");

    }

}

Blog.java

public class Blog {

    private String title;
    private String desc;
    private String video;

    public Blog(){

    }

    public Blog(String title, String desc, String video) {
        this.title = title;
        this.desc = desc;
        this.video = video;
    }

    public String getTitle() {
        return title;
    }

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

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getVideo() {
        return video;
    }

    public void setVideo(String video) {
        this.video = video;
    }
}

帮助我们解决这个问题。我整天都在尝试,但它不起作用。但如果我用图像替换视频,我的工作完美

0 个答案:

没有答案