bilibili / DanmakuFlameMaster

Android开源弹幕引擎·烈焰弹幕使 ~
http://app.bilibili.com/
Apache License 2.0
9.54k stars 2.1k forks source link

部分机型点击弹幕没有回调 #473

Open ggy-yao opened 1 year ago

ggy-yao commented 1 year ago

仅仅用到弹幕一个功能,没有播放器. 同样的代码在不同的手机中点击弹幕效果不同. 部分手机在点击弹幕时无效,有些手机有效.我跟踪了一下点击事件,发现点击事件无效的时候源码中以下判断是不成立的.只有在前几条弹幕点击有效.前几条弹幕走完之后,后面全都无效,,这是为什么 private IDanmakus touchHitDanmaku(final float x, final float y) { final IDanmakus hitDanmakus = new Danmakus(); mDanmakuBounds.setEmpty();

    IDanmakus danmakus = danmakuView.getCurrentVisibleDanmakus();
    if (null != danmakus && !danmakus.isEmpty()) {
        danmakus.forEachSync(new IDanmakus.DefaultConsumer<BaseDanmaku>() {
            @Override
            public int accept(BaseDanmaku danmaku) {
                if (null != danmaku) {
                    mDanmakuBounds.set(danmaku.getLeft(), danmaku.getTop(), danmaku.getRight(), danmaku.getBottom());
                   这里判断不成立,
                    if (mDanmakuBounds.intersect(x - mXOff, y - mYOff, x + mXOff, y + mYOff)) {
                        hitDanmakus.addItem(danmaku);
                    }
                }
                return ACTION_CONTINUE;
            }
        });
    }

    return hitDanmakus;
}
fumayer commented 1 year ago

请问您有解决吗