开弹幕卡顿的原因_显示的弹幕会有卡顿现象? · 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;

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部