unash
unash
(BarrageRenderer *)barrageRender 这个属性是在VC的哪个阶段调用的? (我最近没看群,麻烦你再申请一下,备注个原因)
设置 addSubview:BarrageRenderer.view 也是在 viewDidLoad 调用的? 你的 VC 是否使用了 Xib/Storyboard?
[self addSubview:self.barrageRender.view]; 这句话在调用的时候,最好保证 YXlBulletScreenView 的大小已经定了。
出现频率高吗?
1. 感觉是CPU占用过高所致,看看cpu、gpu的数据 2. 所需要的效果,是在视频暂停的时候,也需要播放弹幕?
BarrageRenderer 没有用 CAAnimation,现有思路下不可能改成 CAAnimation 实现方式。目前 CADisplayLink 使用的是 RunLoopCommonModes,这已经是一个高优先级了。卡顿很严重吗?
连续切换, 什么意思?
/// 弹幕生命周期行为,实验特性; 可试用, 亦可以通过继承 BarrageRenderer 来实现相同功能 - (void)barrageRenderer:(BarrageRenderer *)renderer spriteStage:(BarrageSpriteStage)stage spriteParams:(NSDictionary *)params; 目前已有了 进入、消失 两个时间点的回调。其他时间点似乎用处不大。
没法重布局。 目前在 2.0.0 以上的版本提供了 removePresentSpritesWithName 方法,可以清除掉屏幕上已经显示的弹幕。
如果是弹幕量大导致的冲突,可以通过过滤减少弹幕量优化; 如果不是,提供一下截图看看情况。