Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[videos in tableview]上下快速滚动时,出现复用 #17

Closed
smhjsw opened this issue Oct 12, 2016 · 15 comments
Closed

[videos in tableview]上下快速滚动时,出现复用 #17

smhjsw opened this issue Oct 12, 2016 · 15 comments

Comments

@smhjsw
Copy link
Contributor

smhjsw commented Oct 12, 2016

No description provided.

@casatwy
Copy link
Owner

casatwy commented Oct 12, 2016

复用是为了降低内存消耗,以及加快帧率用的,否则滑动会非常卡。

@casatwy casatwy closed this as completed Oct 12, 2016
@casatwy
Copy link
Owner

casatwy commented Oct 12, 2016

对了,补充一下,你看到的红色的View其实只是Cover View,这个可以是任意View的,例如UIImageView,是视频的封面。

@smhjsw
Copy link
Contributor Author

smhjsw commented Oct 13, 2016

我之前没有表述清楚,我这边不应该说复用。

问题应该是,在复用的时候,会出现 cell 里显示的视频内容重复,在 prepare 的时候,不会马上播放,这里可能需要先隐藏下 CTVideoView。具体可以看下这个视频

http://weibo.com/p/230444d08218d1308aed2cc1209b64c5213d46

@casatwy
Copy link
Owner

casatwy commented Oct 13, 2016

我看了一下视频,然后自己尝试复现了一下,并没有复现出来,初步判断感觉是网速问题?

我想问一下你这边复现几率有多大?以及复现步骤?

发自我的 iPhone

在 2016年10月13日,09:45,George Shen <notifications@github.commailto:notifications@github.com> 写道:

我之前没有表述清楚,我这边不应该说复用。

问题应该是,在复用的时候,会出现 cell 里显示的视频内容重复,在 prepare 的时候,不会马上播放,这里可能需要先隐藏下 CTVideoView。具体可以看下这个视频

http://weibo.com/p/230444d08218d1308aed2cc1209b64c5213d46


You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com//issues/17#issuecomment-253389255, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AA9Y1WV-sTdAbdP7xx_EdkBPjuoYYn4gks5qzY08gaJpZM4KUeyy.

@smhjsw
Copy link
Contributor Author

smhjsw commented Oct 13, 2016

复现的步骤是:进入列表页之后,等到最上面的两个视频中任意一个快要准备好播放时,向下滑动。

复现概率不确定。

@casatwy
Copy link
Owner

casatwy commented Oct 13, 2016

??我没复现出来…可以写一个能复现bug的test case然后给个pull request我么…我断断续续快速滑了好几次,都没看到你视频上发生的场景…你是在慢网络下测试的么?

发自我的 iPhone

在 2016年10月13日,12:20,George Shen <notifications@github.commailto:notifications@github.com> 写道:

复现的步骤是:进入列表页之后,等到最上面的两个视频中任意一个快要准备好播放时,向下滑动。

复现概率不确定。


You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://github.com//issues/17#issuecomment-253410886, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AA9Y1eyxstnUqCf4Ow6W5Zd42a9E-QkFks5qzbGJgaJpZM4KUeyy.

casatwy added a commit that referenced this issue Oct 20, 2016
@casatwy casatwy reopened this Oct 20, 2016
casatwy added a commit that referenced this issue Oct 28, 2016
@casatwy
Copy link
Owner

casatwy commented Oct 28, 2016

已经在Demo中修复了,在demo中添加willDisplayCell的delegate方法,然后prepare就好了。CTVideoView本身的代码跟这个bug是无关的,我demo没写好。

@casatwy casatwy closed this as completed Oct 28, 2016
@smhjsw
Copy link
Contributor Author

smhjsw commented Oct 28, 2016

感谢!

@smhjsw
Copy link
Contributor Author

smhjsw commented Nov 1, 2016

刚刚又测试了下,问题还存在。暂时还没找到 100% 复现的方法,但是不断上下滑动过程中,会有三四成可能性出现。

@casatwy
Copy link
Owner

casatwy commented Nov 1, 2016

诶?我也再看看,我改过之后测试时,已经并没有复现了~

@smhjsw
Copy link
Contributor Author

smhjsw commented Nov 1, 2016

我写得那个 test case 不能复现问题了,暂时需要手动。

@casatwy
Copy link
Owner

casatwy commented Nov 1, 2016

那能够提供一个新的test case么?

@smhjsw smhjsw mentioned this issue Nov 1, 2016
@smhjsw
Copy link
Contributor Author

smhjsw commented Nov 1, 2016

已发 PR,如果没有出现的话,建议拖动几次看下,或者退出再进入,我这边基本上必现了。

@casatwy
Copy link
Owner

casatwy commented Nov 1, 2016

我已经合并PR了,重现之后我会重新开启这个issue

@hoowang hoowang mentioned this issue Mar 10, 2017
@lianleven
Copy link

我发现了这个问题,经过调试发现:与库的本身是没问题的,是因为第一次tableView,DataSource刷新的时候,会willdisplaycell 最多15次(DataSource count > 15),tableView重用原理就是一个队列,当将要显示下个cell的时候就会从队列里取最后一个, 因为有可能最后一个是已经prepare的,显示的是其他的视频帧,如果网速不好的情况下就很明显,解决方案就是在didEndDisplayingCell中去移除掉prepare

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants