yylive / YYEVA-Android

Apache License 2.0
202 stars 35 forks source link

列表下拉刷新 视频问题 #9

Open anypwx opened 9 months ago

anypwx commented 9 months ago
image

下拉刷新后 视频播放不出来 版本 1.1.23 组件 EvaAnimViewV3 平台 Android

cangwang commented 9 months ago

请确认是否将资源完全释放

anypwx commented 9 months ago

如何释放资源, EvaAnimViewV3里的release 方法是私有的

cangwang commented 9 months ago

if (animView.isRunning()) { animView.stopPlay() }

cangwang commented 9 months ago

请查看滚动列表的demo编写

anypwx commented 9 months ago

请查看滚动列表的demo编写

我看了 而且照着逻辑写了,发现还是问题,demo里面只涉及列表, 没有看到下拉刷新这种场景

cangwang commented 9 months ago

先调用stopPlay结束视频试试

anypwx commented 9 months ago

先调用stopPlay结束视频试试 我录个视频给你看,稍等

anypwx commented 9 months ago

https://github.com/yylive/YYEVA-Android/assets/9720135/53636c4e-5ff7-46e5-9b5f-cc30cafc6fce

anypwx commented 9 months ago

Screen_recording_20231011_142147.mp4

@cangwang

cangwang commented 9 months ago

能提供一个demo,我看看调一下?

anypwx commented 9 months ago

那要晚点,目前没有现成的demo,视频都是项目来的,不好拆分出来。或者你在你们提供的那个list demo 里加一个下拉刷新事件试试看。 @cangwang

anypwx commented 9 months ago

感觉和这个问题有关系 https://github.com/yylive/YYEVA/issues/19 同一个 EvaAnimViewV3 不能播放多次视频。下拉刷新有点类似这种情况, 第一次播放成功是列表刚渲染的时候,再次下拉刷新,因为view是重用的,所以同一个EvaAnimViewV3 再次播放视频,就有问题了,看错误提示是多次初始化。难道是把初始化的逻辑放在了播放逻辑里,每次播放都会初始化? 是这样的吗 @cangwang

cangwang commented 9 months ago

你可以试试每次都初始化一个,当然这样可以百分百解决问题,现在问题是复用情况出现问题

anypwx commented 9 months ago

你可以试试每次都初始化一个,当然这样可以百分百解决问题,现在问题是复用情况出现问题

每次都初始化。这和viewholder 理念相背离了,其次性能方面也不好。你们团队能尽快解决这个问题吗

anypwx commented 9 months ago

你可以试试每次都初始化一个,当然这样可以百分百解决问题,现在问题是复用情况出现问题

我现在是这样做的

binding.ivBg.removeAllViews()
        val eva3 = com.yy.yyeva.view.EvaAnimViewV3(context)
        eva3.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)
        eva3.setLoop(Int.MAX_VALUE)
        binding.ivBg.addView(eva3)
        Mp4PlayManager.playMp4ByAssets(eva3, "bg_pass_card.mp4", null)

viewholder 保持 不变,在itemview 里动态创建EvaAnimViewV3,暂时可以解决此问题 @cangwang

cangwang commented 9 months ago

滚动的demo也是复用的,问题应该只是下拉刷新问题,暂时业务有点忙,排期修复

anypwx commented 9 months ago

滚动的demo也是复用的,问题应该只是下拉刷新问题,暂时业务有点忙,排期修复

ok 期待ing 修复好麻烦@我

anypwx commented 9 months ago

滚动的demo也是复用的,问题应该只是下拉刷新问题,暂时业务有点忙,排期修复

image

这个回调会影响播放吗?假如我没有传callback这个