开弹幕卡顿的原因_显示的弹幕会有卡顿现象? · Issue #174 · bilibili/DanmakuFlameMaster · GitHub...

设置最大显示行数为3行,设置是否禁止重叠,并且把过滤掉的弹幕捡回重新发送绘制,但是修改后出现一个问题,当打弹幕速度很快时,打出弹幕较多,此时屏幕上的弹幕会出现卡顿现象?不知道是不是我重新捡起漏掉的弹幕导致的?请指教一下吧。

捡起弹幕我使用广播重新发送出去,又添加到addDanmaku(content, isMyself);中的

捡起过滤掉的方法是:

1.在BaseDanmaku中加一个属性字段:-----通过判断该字段判断是否被过滤

public boolean canDraw = false;

2. //当被过滤掉时drawItem.isFiltered()==ture 会执行此方法-----我们修改改item的变量为true

if (drawItem.time < startRenderTime || (drawItem.priority == 0 && drawItem.isFiltered())) {

Log.d("zssf", "RenderingState draw text : " + drawItem.text);

if (!drawItem.canDraw) {

drawItem.canDraw = true;

}

continue;

}

3.Danmakus中添加adjustItems方法 ----对应的接口中也要注册该方法 ----- public void adjustItems(Context mContext);

public void adjustItems(Context mContext) {

Collection tmps = new ArrayList();

for (BaseDanmaku danmaku : items) {

if (danmaku.canDraw) {

Intent intent = new Intent("com.danmaku.add");

intent.putExtra("text", danmaku.text);

intent.putExtra("textColor", danmaku.textColor);

mContext.sendBroadcast(intent);

Log.e("zssf", "text: " + danmaku.text + ", time: " + danmaku.time + ", id: " + danmaku);

} else {

tmps.add(danmaku);

}

}

items.clear();

items.addAll(tmps);

mSize = items.size();

tmps.clear();

tmps = null;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值