使用 exoplayer android 在 recyclerview 中显示视频

Posted

技术标签:

【中文标题】使用 exoplayer android 在 recyclerview 中显示视频【英文标题】:Show videos in recyclerview with exoplayer android 【发布时间】:2020-03-01 15:57:33 【问题描述】:

我想使用 exoPlayer android 在 recyclerView 中显示图像和视频列表(从服务器获取),而不是自动播放。只有当用户点击任何视频缩略图时,它才应该播放。

【问题讨论】:

I want to display data from Json in recyclerview in Android的可能重复 【参考方案1】:

要在回收站视图中显示图像和视频,您需要在适配器中创建 2 个不同的视图持有者,并使用以下代码获取图像和视频的视图类型:-

@Override
    public int getItemViewType(int position) 
        if (data.get(0).isVideo) 
            return Constants.LAYOUT_VIDEO;
         else 
            return Constants.LAYOUT_IMAGE;
        
    

以下是 onCreateViewHolder 的代码:-

@NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) 
        View view;
        if (viewType == Constants.LAYOUT_VIDEO) 
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_video, parent, false);
            return new VideoViewHolder(view);
         else if (viewType == Constants.LAYOUT_IMAGE) 
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_image, parent, false);
            return new ImageViewHolder(view);
         
    

有关在回收站视图中显示视频的更多信息,您可以访问以下链接:-

https://androidwave.com/exoplayer-in-recyclerview-in-android/

要禁用自动播放,只需在将 URL 设置为 exoplayer 之前写下一行:-

player.setPlayWhenReady(true);

【讨论】:

我已经根据我的情况调整了您的解决方案,恭喜它运行良好!

以上是关于使用 exoplayer android 在 recyclerview 中显示视频的主要内容,如果未能解决你的问题,请参考以下文章

Android Widevine DASH 实现 + ExoPlayer

如何在 android 中实现 Exoplayer 2.11.1?

使用 exoplayer android 在 recyclerview 中显示视频

使用 Kotlin 的 Android TV 中的 ExoPlayer

使用 ExoPlayer 的 Android MediaPlayer 持久缓存

Android音频开发:使用ExoPlayer播放音频