CarGuo / GSYVideoPlayer

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,16k page size,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
https://juejin.cn/user/817692379985752/posts
Apache License 2.0
20.08k stars 4.18k forks source link

Exo模式 嵌套 RecycleView 列表中第一元素有声音,无画面;Ijk模式会闪屏 #3686

Closed xiuyuantech closed 1 year ago

xiuyuantech commented 2 years ago

(!!!!请务必务必按照issue模板,修改 后提交问题!!!!,不按模板提Isuue删除处理)

(ps 首页问题集锦和demo请先了解一下!)

⚠️提问前建议先看看: https://mp.weixin.qq.com/s/HjSdmAsHuvixCH_EWdvk3Q

问题描述:

Exo模式 嵌套 RecycleView 列表中适配器第一元素有声音,无画面;Ijk模式会闪屏

出现问题的视频流

videoUrl: http://vd2.bdstatic.com/mda-ni5b74m8fyfy1u1e/cae_h264/1662451178955538861/mda-ni5b74m8fyfy1u1e.mp4?v_from_s=hkapp-haokan-hbe

好像随便一个视频流都是这样的现象。

问题机型/系统:

真机 乐视pro LeX620 Android6.0

GSY依赖版本

刚开始是: implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.3.3-release-jitpack' implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.3.3-release-jitpack'

发现 #3673 后升级: implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:v8.3.4-release-jitpack' implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer-exo2:v8.3.4-release-jitpack'

Demo中的复现步骤

RecycleView 嵌套 RecycleView RecycleView 外层适配器:CncatAdapter,LinearLayoutManager RecycleView 内部适配器:继承自ListAdapter,GridLayoutManager

请求数据回来后显示ui,点击每一个Adapter中的第一元素必现

主要代码在自定义Adapter中,贴在下面 问题代码:(如果有) xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <com.xygit.free.geekvideo.view.RoundConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:backgroundColor="@android:color/white"
        app:round_radius="@dimen/dp_8">

        <androidx.legacy.widget.Space
            android:id="@+id/top_space"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_4"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <com.google.android.material.card.MaterialCardView
            android:id="@+id/v_bg"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:clickable="true"
            android:descendantFocusability="blocksDescendants"
            android:visibility="gone"
            app:cardCornerRadius="@dimen/dp_8"
            app:cardElevation="@dimen/dp_0"
            app:cardPreventCornerOverlap="false"
            app:cardUseCompatPadding="false"
            app:layout_constraintBottom_toTopOf="@+id/bottom_space"
            app:layout_constraintTop_toBottomOf="@+id/top_space">

        </com.google.android.material.card.MaterialCardView>

        <androidx.legacy.widget.Space
            android:id="@+id/header_spce"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_8"
            app:layout_constraintTop_toBottomOf="@+id/top_space" />

        <com.xygit.free.geekvideo.view.RoundFrameLayout
            android:id="@+id/rl_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingStart="@dimen/dp_16"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/header_spce">

            <com.google.android.material.imageview.ShapeableImageView
                android:id="@+id/iv_avatar"
                android:layout_width="@dimen/dp_48"
                android:layout_height="@dimen/dp_48"
                android:padding="@dimen/dp_2"
                android:scaleType="centerCrop"
                app:shapeAppearance="@style/CircleStyle"
                app:strokeColor="@color/color_background"
                app:strokeWidth="@dimen/dp_2"
                tools:src="@mipmap/ic_launcher" />

        </com.xygit.free.geekvideo.view.RoundFrameLayout>

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_author"
            style="@style/MediumTextStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="@dimen/dp_8"
            android:textColor="@android:color/black"
            app:layout_constrainedWidth="true"
            app:layout_constraintBottom_toBottomOf="@+id/rl_header"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/rl_header"
            app:layout_constraintTop_toTopOf="@+id/rl_header"
            tools:text="皮皮虾" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_title"
            style="@style/MediumTextStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="@dimen/dp_16"
            android:paddingTop="@dimen/dp_8"
            android:paddingEnd="@dimen/dp_16"
            android:paddingBottom="@dimen/dp_8"
            android:textColor="@android:color/black"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/rl_header"
            tools:text="皮皮虾" />

        <FrameLayout
            android:id="@+id/fl_play"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingStart="@dimen/dp_8"
            android:paddingEnd="@dimen/dp_8"
            android:tag="img_share_element"
            app:layout_constraintTop_toBottomOf="@+id/tv_title"
            tools:visibility="visible">

            <FrameLayout
                android:id="@+id/fl_gif"
                android:layout_width="match_parent"
                android:layout_height="@dimen/dp_240">

                <com.google.android.material.imageview.ShapeableImageView
                    android:id="@+id/iv_player"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_240"
                    android:padding="@dimen/dp_2"
                    android:scaleType="centerCrop"
                    android:tag="img_share_element"
                    android:visibility="gone"
                    tools:src="@mipmap/ic_launcher"
                    tools:visibility="visible" />

                <moe.codeest.enviews.ENPlayView
                    android:id="@+id/iv_start"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_gravity="center"
                    android:clickable="true"
                    android:visibility="visible" />

            </FrameLayout>

            <com.xygit.free.geekvideo.gsyexo.SampleCoverVideo
                android:id="@+id/video_player"
                android:layout_width="match_parent"
                android:layout_height="@dimen/dp_240"
                android:visibility="gone"
                tools:visibility="gone" />

        </FrameLayout>

        <androidx.legacy.widget.Space
            android:id="@+id/play_space"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_16"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/fl_play" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_like"
            style="@style/MediumTextStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:drawablePadding="@dimen/dp_4"
            android:gravity="center_vertical"
            android:paddingStart="@dimen/dp_8"
            android:paddingTop="@dimen/dp_4"
            android:paddingEnd="@dimen/dp_8"
            android:paddingBottom="@dimen/dp_4"
            android:textColor="@android:color/black"
            app:layout_constrainedWidth="true"
            app:layout_constraintEnd_toStartOf="@+id/tv_comment"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/play_space"
            tools:drawableStartCompat="@drawable/ic_action_like"
            tools:text="皮皮虾" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_comment"
            style="@style/MediumTextStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:drawablePadding="@dimen/dp_4"
            android:gravity="center_vertical"
            android:paddingStart="@dimen/dp_8"
            android:paddingTop="@dimen/dp_4"
            android:paddingEnd="@dimen/dp_8"
            android:paddingBottom="@dimen/dp_4"
            android:textColor="@android:color/black"
            app:layout_constrainedWidth="true"
            app:layout_constraintEnd_toStartOf="@+id/tv_play"
            app:layout_constraintStart_toEndOf="@+id/tv_like"
            app:layout_constraintTop_toBottomOf="@+id/play_space"
            tools:drawableStartCompat="@drawable/ic_action_unlike"
            tools:text="皮皮虾" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_play"
            style="@style/MediumTextStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:drawablePadding="@dimen/dp_4"
            android:gravity="center_vertical"
            android:paddingStart="@dimen/dp_8"
            android:paddingTop="@dimen/dp_4"
            android:paddingEnd="@dimen/dp_8"
            android:paddingBottom="@dimen/dp_4"
            android:textColor="@android:color/black"
            app:layout_constrainedWidth="true"
            app:layout_constraintEnd_toStartOf="@+id/tv_share"
            app:layout_constraintStart_toEndOf="@+id/tv_comment"
            app:layout_constraintTop_toBottomOf="@+id/play_space"
            tools:drawableStartCompat="@drawable/ic_action_watch"
            tools:text="皮皮虾" />

        <com.google.android.material.textview.MaterialTextView
            android:id="@+id/tv_share"
            style="@style/MediumTextStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:drawablePadding="@dimen/dp_4"
            android:gravity="center_vertical"
            android:paddingStart="@dimen/dp_8"
            android:paddingTop="@dimen/dp_4"
            android:paddingEnd="@dimen/dp_8"
            android:paddingBottom="@dimen/dp_4"
            android:textColor="@android:color/black"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/tv_play"
            app:layout_constraintTop_toBottomOf="@+id/play_space"
            tools:drawableStartCompat="@drawable/ic_action_share"
            tools:text="皮皮虾" />

        <androidx.legacy.widget.Space
            android:id="@+id/line_space"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_8"
            app:layout_constraintTop_toBottomOf="@+id/tv_share" />

        <androidx.legacy.widget.Space
            android:id="@+id/bottom_space"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_4"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/line_space" />

    </com.xygit.free.geekvideo.view.RoundConstraintLayout>
</FrameLayout>

kotlin:

class ShortVideoAdapter(inflater: LayoutInflater) :
    BaseBindingAdapter<ShortVideo, ItemListShortVideoBinding>(inflater, ShortVideoDiffCallback()) {

    val TAG = ShortVideoAdapter::class.java.simpleName
    private val gsyVideoOption = GSYVideoOptionBuilder()
    override fun getItemViewType(position: Int): Int {
        return R.layout.item_list_short_video
    }

    override fun onCreateViewHolder(
        parent: ViewGroup,
        viewType: Int
    ): BindingViewHolder<ItemListShortVideoBinding> {
        val holder = super.onCreateViewHolder(parent, viewType)
        with(holder.binding) {
            //videoPlayer.addOnLayoutChangeListener { view, i, i2, i3, i4, i5, i6, i7, i8 ->
            //    //大于0说明有播放
            //    if (GSYVideoManager.instance().playPosition >= 0) {
            //        //当前播放的位置
            //        val position = GSYVideoManager.instance().playPosition
            //        //对应的播放列表TAG
            //        if (GSYVideoManager.instance().playTag == TAG && position == holder.bindingAdapterPosition) {
            //            //如果滑出去了上面和下面就是否,和今日头条一样
            //            //是否全屏
            //            if (!GSYVideoManager.isFullState(getActivityFromContext(inflater.context))) {
            //                GSYVideoManager.releaseAllVideos()
            //            }
            //        }
            //    }
            //}
        }
        return holder
    }

    override fun onBindViewHolder(
        binding: ItemListShortVideoBinding,
        item: ShortVideo,
        position: Int
    ) {
        with(binding) {
            Glide.with(inflater.context)
                .asDrawable()
                .load(item.autherCoverUrl)
                .into(ivAvatar)
            tvAuthor.text = item.autherName
            tvTitle.text = item.title.plus(item.videoIntroduction)

            gsyVideoOption.setIsTouchWiget(true)
                .setLockLand(false)
                .setShowFullAnimation(false)
                .setNeedLockFull(true)
                .setSeekRatio(1f)
                .setAutoFullWithSize(true)
                .setCacheWithPlay(true)
                .setShowDragProgressTextOnSeekBar(true)
                .setVideoTitle("")
                .setUrl(item.videoUrl)
                .setCachePath(File(FileCacheUtils.getExternalVideoCachePath()))
                .setVideoAllCallBack(object : GSYSampleCallBack() {
                    override fun onPrepared(url: String, vararg objects: Any) {
                        Debuger.printfError("***** onPrepared **** " + objects[0])
                        Debuger.printfError("***** onPrepared **** " + objects[1])
                        super.onPrepared(url, *objects)
                        //开始播放了才能旋转和全屏
                        //isPlay = true
                    }

                    override fun onEnterFullscreen(url: String, vararg objects: Any) {
                        super.onEnterFullscreen(url, *objects)
                        Debuger.printfError("***** onEnterFullscreen **** " + objects[0]) //title
                        Debuger.printfError("***** onEnterFullscreen **** " + objects[1]) //当前全屏player
                    }

                    override fun onAutoComplete(url: String, vararg objects: Any) {
                        super.onAutoComplete(url, *objects)
                    }

                    override fun onClickStartError(url: String, vararg objects: Any) {
                        super.onClickStartError(url, *objects)
                    }

                    override fun onQuitFullscreen(url: String, vararg objects: Any) {
                        super.onQuitFullscreen(url, *objects)
                        Debuger.printfError("***** onQuitFullscreen **** " + objects[0]) //title
                        Debuger.printfError("***** onQuitFullscreen **** " + objects[1]) //当前非全屏player

                        // ------- !!!如果不需要旋转屏幕,可以不调用!!!-------
                        // 不需要屏幕旋转,还需要设置 setNeedOrientationUtils(false)
                    }
                })
                .setGSYVideoProgressListener { progress, secProgress, currentPosition, duration ->
                    Debuger.printfLog(
                        " progress $progress secProgress $secProgress currentPosition $currentPosition duration $duration"
                    )
                }
                .build(videoPlayer)
            videoPlayer.fullscreenButton.setOnClickListener(object : View.OnClickListener {
                override fun onClick(v: View) {
                    //直接横屏
                    // ------- !!!如果不需要旋转屏幕,可以不调用!!!-------
                    // 不需要屏幕旋转,还需要设置 setNeedOrientationUtils(false)

                    //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
                    videoPlayer.startWindowFullscreen(
                        getActivityFromContext(inflater.context),
                        true,
                        true
                    )
                }
            })
            //videoPlayer.setOnKeyListener { view, i, keyEvent ->
            //    if (KeyEvent.KEYCODE_BACK == i) {
            //        if (GSYVideoManager.backFromWindowFull(inflater.context)) {
            //            return@setOnKeyListener true
            //        }
            //    }
            //    false
            //}
            ivStart.setOnClickListener {
                val drawable = ivPlayer.drawable
                if (drawable is Animatable) {
                    if (drawable.isRunning) {
                        drawable.stop()
                        ivStart.pause()
                    } else {
                        drawable.start()
                        ivStart.play()
                    }
                }
            }
            videoPlayer.startButton.setOnClickListener {
                videoPlayer.release()
                gsyVideoOption.setUrl(item.videoUrl)
                    .build(videoPlayer)
                MainHandler.handle(300) {
                    videoPlayer.startPlayLogic()
                }
            }
            if (SafeUtil.containsImageUrl(item.videoUrl)) {
                videoPlayer.isVisible = false
                flGif.isVisible = true
                ivPlayer.isVisible = true
                Glide.with(inflater.context)
                    .asDrawable()
                    .load(item.videoCoverUrl)
                    .into(object : ImageViewTarget<Drawable>(ivPlayer) {
                        override fun setResource(resource: Drawable?) {
                            if (resource is Animatable) {
                                ivStart.isVisible = true
                                resource.stop()
                                ivStart.pause()
                            } else {
                                ivStart.isVisible = false
                            }
                        }
                    })
                //videoPlayer.setOnKeyListener(null)
            } else {
                gsyVideoOption.setUrl(item.videoUrl)
                    .build(videoPlayer)
                val coverUrl = if (item.videoCoverUrl.isNotBlank()) {
                    item.videoCoverUrl
                } else {
                    item.videoUrl
                }
                videoPlayer.loadCoverImage(coverUrl, R.drawable.image_error_ic)
                videoPlayer.isVisible = true
                videoPlayer.titleTextView.visibility = View.GONE
                videoPlayer.backButton.visibility = View.GONE
                ivPlayer.isVisible = false
                flGif.isVisible = false
            }

            tvLike.drawable_start = R.drawable.ic_action_like
            tvLike.text = item.kudos

            tvComment.drawable_start = R.drawable.ic_action_unlike
            tvComment.text = item.comments

            tvPlay.drawable_start = R.drawable.ic_action_watch
            tvPlay.text = item.playCount

            tvShare.drawable_start = R.drawable.ic_action_share
            tvShare.setText(R.string.share_app)

            tvShare.setOnClickListener {
                val bp = getBitmap(root)
                SystemUtil.share(
                    inflater.context,
                    tvTitle.text.toString() + " url:" + item.videoUrl,
                    bp
                )
            }
        }
    }

    override fun onViewRecycled(holder: BindingViewHolder<ItemListShortVideoBinding>) {
        super.onViewRecycled(holder)
        with(holder.binding) {
            Glide.with(inflater.context).clear(ivAvatar)
            if (!videoPlayer.isVisible) {
                Glide.with(inflater.context).clear(ivPlayer)
            } else {
                if (null != videoPlayer.coverImage) {
                    Glide.with(inflater.context).clear(videoPlayer.coverImage)
                }
                if (!GSYVideoManager.isFullState(getActivityFromContext(inflater.context))) {
                    GSYVideoManager.releaseAllVideos()
                }
            }
        }
    }
}

问题log(如果有)

2022-09-07 10:28:08.840 16801-16801/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:08.840 16801-16801/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:08.840 16801-16801/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:08.840 16801-16801/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:08.840 16801-16801/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:08.847 16801-16930/com.gsyexo.sample E/HttpProxyCacheDebuger: ****** injectCustomHeaders ****** :0
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:08.848 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:08.849 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:08.849 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:08.849 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:08.849 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:08.854 16801-16931/com.gsyexo.sample I/HttpProxyCacheDebuger: Opened connections: 0
2022-09-07 10:28:08.855 16801-16930/com.gsyexo.sample I/HttpProxyCacheDebuger: Ping response: `ping ok`, pinged? true
2022-09-07 10:28:08.856 16801-16801/com.gsyexo.sample I/HttpProxyCacheDebuger: Proxy cache server started. Is it alive? true
2022-09-07 10:28:08.858 16801-16930/com.gsyexo.sample E/HttpProxyCacheDebuger: ****** injectCustomHeaders ****** :0
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:08.859 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:08.860 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:08.860 16801-16930/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:08.860 16801-16930/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:08.864 16801-16932/com.gsyexo.sample I/HttpProxyCacheDebuger: Opened connections: 0
2022-09-07 10:28:08.864 16801-16930/com.gsyexo.sample I/HttpProxyCacheDebuger: Ping response: `ping ok`, pinged? true
2022-09-07 10:28:08.895 16801-16801/com.gsyexo.sample E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
2022-09-07 10:28:08.934 16801-16801/com.gsyexo.sample I/ExoPlayerImpl: Init e64b821 [ExoPlayerLib/2.18.1] [le_x6, Le X620, LeMobile, 23]
2022-09-07 10:28:09.006 16801-16801/com.gsyexo.sample D/EventLogger: state [0.08, B]
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=127.0.0.1; servname=(null); netid=0; mark=0
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:09.021 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:09.022 16801-16935/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:09.022 16801-16935/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:09.040 16801-16937/com.gsyexo.sample E/HttpProxyCacheDebuger: ****** injectCustomHeaders ****** :0
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=vd2.bdstatic.com; servname=(null); netid=0; mark=0
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=vd2.bdstatic.com; servname=(null); netid=0; mark=0
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:09.041 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:09.042 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:09.042 16801-16937/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=0
2022-09-07 10:28:09.054 16801-16801/com.gsyexo.sample D/EventLogger: loading [true]
2022-09-07 10:28:09.104 16801-16937/com.gsyexo.sample D/libc-netbsd: getaddrinfo: vd2.bdstatic.com get result from proxy gai_error = 0
2022-09-07 10:28:09.298 16801-16939/com.gsyexo.sample E/HttpProxyCacheDebuger: ****** injectCustomHeaders ****** :0
2022-09-07 10:28:09.298 16801-16939/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk hostname=vd2.bdstatic.com; servname=(null); netid=0; mark=0
2022-09-07 10:28:09.299 16801-16939/com.gsyexo.sample D/libc-netbsd: getaddrinfo( app_uid:10323
2022-09-07 10:28:09.299 16801-16939/com.gsyexo.sample D/libc-netbsd: getaddrinfo() uid prop:
2022-09-07 10:28:09.299 16801-16939/com.gsyexo.sample D/libc-netbsd: getaddrinfo() getuid():10323
2022-09-07 10:28:09.299 16801-16939/com.gsyexo.sample D/libc-netbsd: [getaddrinfo]: mtk ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
2022-09-07 10:28:09.781 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/mpeg-L2
2022-09-07 10:28:09.783 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/x-adpcm-ms
2022-09-07 10:28:09.785 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/x-adpcm-dvi-ima
2022-09-07 10:28:09.798 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/dts
2022-09-07 10:28:09.800 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/ape
2022-09-07 10:28:09.803 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/alac
2022-09-07 10:28:09.807 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/ac3
2022-09-07 10:28:09.809 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/eac3
2022-09-07 10:28:09.813 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/eac3-joc
2022-09-07 10:28:09.817 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/x-adpcm-ms
2022-09-07 10:28:09.819 16801-16934/com.gsyexo.sample W/AudioCapabilities: Unsupported mime audio/x-adpcm-dvi-ima
2022-09-07 10:28:09.828 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unrecognized profile/level 32768/2 for video/mp4v-es
2022-09-07 10:28:09.848 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unsupported mime video/x-ms-wmv
2022-09-07 10:28:09.851 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unsupported mime video/divx
2022-09-07 10:28:09.854 16801-16814/com.gsyexo.sample E/StrictMode: 0x00000000 45 00 00 E4 DA FE 40 00 40 06 61 13 7F 00 00 01 E.....@.@.a.....
    0x00000010 7F 00 00 01 DF 0D 9C 51 D9 A5 32 0C B3 74 97 0C .......Q..2..t..
    0x00000020 80 18 07 FF FE D8 00 00 01 01 08 0A 07 70 E8 F7 .............p..
    0x00000030 07 70 E8 F7 47 45 54 20 2F 70 69 6E 67 20 48 54 .p..GET./ping.HT
    0x00000040 54 50 2F 31 2E 31 0D 0A 55 73 65 72 2D 41 67 65 TP/1.1..User-Age
    0x00000050 6E 74 3A 20 44 61 6C 76 69 6B 2F 32 2E 31 2E 30 nt:.Dalvik/2.1.0
    0x00000060 20 28 4C 69 6E 75 78 3B 20 55 3B 20 41 6E 64 72 .(Linux;.U;.Andr
    0x00000070 6F 69 64 20 36 2E 30 3B 20 4C 65 20 58 36 32 30 oid.6.0;.Le.X620
    0x00000080 20 42 75 69 6C 64 2F 48 45 58 43 4E 46 4E 35 38 .Build/HEXCNFN58
    0x00000090 30 31 38 30 39 33 30 31 53 29 0D 0A 48 6F 73 74 01809301S)..Host
    0x000000A0 3A 20 31 32 37 2E 30 2E 30 2E 31 3A 34 30 30 31 :.127.0.0.1:4001
    0x000000B0 37 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 7..Connection:.K
    0x000000C0 65 65 70 2D 41 6C 69 76 65 0D 0A 41 63 63 65 70 eep-Alive..Accep
    0x000000D0 74 2D 45 6E 63 6F 64 69 6E 67 3A 20 67 7A 69 70 t-Encoding:.gzip
    0x000000E0 0D 0A 0D 0A                                     ....
    java.lang.Throwable: Detected cleartext network traffic from UID 10323 to /127.0.0.1
        at android.os.StrictMode.onCleartextNetworkDetected(StrictMode.java:1803)
        at android.app.ActivityThread$ApplicationThread.notifyCleartextNetwork(ActivityThread.java:1311)
        at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:703)
        at android.os.Binder.execTransact(Binder.java:458)
2022-09-07 10:28:09.855 16801-16814/com.gsyexo.sample E/Parcel: Reading a NULL string not supported here.
2022-09-07 10:28:09.856 16801-16814/com.gsyexo.sample W/Binder: Caught a RuntimeException from the binder stub implementation.
    java.lang.SecurityException: Binder invocation to an incorrect interface
        at android.os.Parcel.nativeEnforceInterface(Native Method)
        at android.os.Parcel.enforceInterface(Parcel.java:469)
        at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:708)
        at android.os.Binder.execTransact(Binder.java:458)
2022-09-07 10:28:09.856 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unsupported mime video/divx3
2022-09-07 10:28:09.860 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unsupported mime video/xvid
2022-09-07 10:28:09.864 16801-16934/com.gsyexo.sample W/VideoCapabilities: Unsupported mime video/flv1
2022-09-07 10:28:09.937 16801-16934/com.gsyexo.sample I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
2022-09-07 10:28:09.988 16801-16941/com.gsyexo.sample E/ACodec: cannot find aac bit rate
2022-09-07 10:28:10.033 16801-16801/com.gsyexo.sample D/EventLogger: state [1.11, R]
2022-09-07 10:28:10.037 16801-16801/com.gsyexo.sample D/EventLogger: state [1.11, true, I]
2022-09-07 10:28:10.122 16801-16826/com.gsyexo.sample I/GLConsumer: [SurfaceTexture-0-16801-1] attachToContext
2022-09-07 10:28:10.163 16801-16947/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
2022-09-07 10:28:10.170 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361c20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.176 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361e00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.182 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f8006b800) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.237 16801-16947/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
2022-09-07 10:28:10.253 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361e00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.258 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361c20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.263 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a3623a0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.269 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363160) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.274 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363b60) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.280 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363c00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.285 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363ca0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.291 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363d40) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.297 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363de0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.302 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363e80) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.308 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363f20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.354 16801-16801/com.gsyexo.sample D/EventLogger: videoSizeChanged [640, 360]
2022-09-07 10:28:10.356 16801-16947/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363fc0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.371 16801-16826/com.gsyexo.sample I/GLConsumer: [SurfaceTexture-0-16801-1] detachFromContext
2022-09-07 10:28:10.520 16801-16958/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
2022-09-07 10:28:10.529 16801-16958/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361c20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.536 16801-16958/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361e00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.544 16801-16958/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a3623a0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.712 16801-16968/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
2022-09-07 10:28:10.719 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361c20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.725 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361e00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.731 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a3623a0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.743 16801-16826/com.gsyexo.sample I/GLConsumer: [SurfaceTexture-0-16801-2] attachToContext
2022-09-07 10:28:10.801 16801-16968/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
2022-09-07 10:28:10.822 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361e00) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.827 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a361c20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.836 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363200) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.842 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363f20) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.847 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a363fc0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.853 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a364060) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.859 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a364100) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.864 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a3641a0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.870 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a364240) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.871 16801-16801/com.gsyexo.sample D/EventLogger: videoSizeChanged [640, 360]
2022-09-07 10:28:10.874 16801-16801/com.gsyexo.sample D/EventLogger: videoSizeChanged [640, 360]
2022-09-07 10:28:10.875 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a3642e0) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.881 16801-16968/com.gsyexo.sample I/GraphicBuffer: create GraphicBuffer by ANativeWindowBuffer, handle(0x7f5a364380) (w:640 h:360 s:640 f:0x32315679 u:0x002933) owner(0)
2022-09-07 10:28:10.906 16801-16826/com.gsyexo.sample I/GLConsumer: [SurfaceTexture-0-16801-2] detachFromContext
2022-09-07 10:28:11.048 16801-16978/com.gsyexo.sample D/SurfaceUtils: set up nativeWindow 0x7f41568410 for 640x360, color 0x32315679, rotation 0, usage 0x2933
CarGuo commented 2 years ago

没有复现,单纯ry 嵌套 ry

xiuyuantech commented 2 years ago

没有复现,单纯ry 嵌套 ry

主页面布局: <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent">

<com.scwang.smart.refresh.layout.SmartRefreshLayout
    android:id="@+id/refresh_detail"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:visibility="visible">

    <com.scwang.smart.refresh.header.ClassicsHeader
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

          <androidx.constraintlayout.widget.ConstraintLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_detail"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        android:scrollbars="none" />

     </androidx.constraintlayout.widget.ConstraintLayout>

    <com.scwang.smart.refresh.footer.ClassicsFooter
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:visibility="visible" />

</com.scwang.smart.refresh.layout.SmartRefreshLayout>

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fbt_top"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="@dimen/dp_16"
    android:layout_marginBottom="@dimen/dp_56"
    android:clickable="true"
    android:rotation="-90"
    android:src="@drawable/ic_action_right"
    android:visibility="gone"
    app:backgroundTint="@color/color_F6FDF6"
    app:fabSize="auto"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    tools:visibility="visible" />

<include
    android:id="@+id/vstub_empty"
    layout="@layout/load_empty"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<include
    android:id="@+id/vstub_error"
    layout="@layout/load_error"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone" />

</androidx.constraintlayout.widget.ConstraintLayout>

对了,上面说的现象播放后还无法暂停?

CarGuo commented 2 years ago

不是很清楚你什么情况,我测试 RecycleView 嵌套 RecycleView 正常

xiuyuantech commented 2 years ago

不是很清楚你什么情况,我测试 RecycleView 嵌套 RecycleView 正常

我有录屏,我发到qq群里吧

CarGuo commented 2 years ago

你有录频也没用啊····我不复现也不知道什么问题,怎么看····

CarGuo commented 2 years ago

经过测试,我不觉得这是 GSY 的问题

xiuyuantech commented 2 years ago

我发现日志一直会重复打印 视频渲染 中 Surface 创建失败后重新创建,我不太理解GSY的原理,可以简单介绍下提供点思路么

CarGuo commented 2 years ago

大致情况如图

image

xiuyuantech commented 2 years ago

大佬,我感觉是GSYTextureView 视频解码 渲染那块有问题。后来我换了其他播放器就没有上面的问题。

CarGuo commented 2 years ago

换着你可以设置SURFACE 模式试试

xiuyuantech commented 1 year ago

换着你可以设置SURFACE 模式试试

SURFACE和GLSURFACE模式 我都测试过了,都是有声但显示白屏

CarGuo commented 1 year ago

那就不是很清楚了,我这边测试正常,很尴尬

Vicent9920 commented 1 year ago

全屏播放结束时,在全屏的时候播放下一个视频的时候,也出现了只有声音,视频区域黑屏的现象,不知道是怎么回事?

CarGuo commented 1 year ago

@Vicent9920 要用 player.getCurrentPlayer() 去调用播放