Android Kotlin-Recyclerview错误:上一项触发监听器VideoView setOnPreparedListener

问题描述

这是RecyclerView适配器

var mpp: MediaPlayer? = null


override fun onBindViewHolder(holder: ViewHolder,position: Int) {

    mpp = null

    if(isVideo){
        val uri = Uri.parse(fileUrl)

        holder.vid.setVideoURI(uri)
        holder.vid.requestFocus()
        
        holder.vid.setonPreparedListener { mp -> //Start Playback

            mpp = mp

            holder.vid.start()

            mpp!!.isLooping = true
        }   
    }else{
        // images
    }
}

前4个项目是视频,第5-20个项目是图像。

播放视频可以,但是会出现问题:

当我滑动到第6项时,我会在观看图像的同时听到第1项的视频播放。

滑动到项目7可以播放项目2中的视频。项目8播放项目3的视频,项目9播放项目4的视频。

因此它触发了先前项目中的setonPreparedListener,为什么呢?如何防止播放以前项目的视频并浪费带宽?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)