首页 > 解决方案 > 无法从服务器获取 RecylerView 中的视频

问题描述

`实际上我想在我创建的 RecylerView 中显示来自服务器的视频列表,它包含 TextView(比如是否是 Facebook、youtube 视频)和一个 VideoView(用于显示视频),我在里面写了一些代码VideoAdapter 类中的 bindobject() 方法。

编写代码后,我得到了 TextView 字段但没有视频,任何帮助将不胜感激???

这是代码:`

package com.fitness.client.ui.main.fragments.gallery.adapter;

import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.MediaController;

import androidx.annotation.NonNull;

import com.fitness.client.R;
import com.fitness.client.api.user.GalleryResponse;
import com.fitness.client.base.classes.BaseRecyclerViewAdapter;
import com.fitness.client.base.classes.BaseViewHolder;
import com.fitness.client.databinding.ItemProfileVideoBinding;

import java.util.List;

public class VideoAdapter extends BaseRecyclerViewAdapter<VideoAdapter.VideoHolder, GalleryResponse.Video_galleryEntity> {


    public VideoAdapter(List<GalleryResponse.Video_galleryEntity> data) {
        super(data);
    }

    @NonNull
    @Override
    public VideoHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new VideoHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_profile_video, parent, false));
    }

    class VideoHolder extends BaseViewHolder<GalleryResponse.Video_galleryEntity, ItemProfileVideoBinding> {

        public VideoHolder(View itemView) {
            super(itemView);
        }

        @Override
        protected void bindObject(GalleryResponse.Video_galleryEntity object) {
            getViewDataBinding().videoText.setText(object.getVideo_type());

           //Getting video
            String video_url = object.getVideo();
            Log.e("MyFragment", "Video-url: " + video_url );

            Uri uri = Uri.parse(video_url);
            getViewDataBinding().video.setVideoURI(uri);
            getViewDataBinding().video.start();
        }
    }
}```



标签: javaandroid

解决方案


如果您使用 VideoView 效率将不高 因为视频需要流式传输 我建议您使用 EXO 播放器它是由 google 创建的,它处理所有的流式传输部分,您也可以阅读那里的文档


推荐阅读