DanmakuFlameMaster icon indicating copy to clipboard operation
DanmakuFlameMaster copied to clipboard

当前项目每秒弹幕量在100条左右,卡顿很严重,有什么办法解决么

Open Huangjiaqi0421 opened this issue 7 years ago • 5 comments

视屏使用的是ijkplayer 硬解,弹幕过滤danmaku.priority = 0; 卡顿还是严重,测试机型oppo R9

Huangjiaqi0421 avatar Feb 04 '17 06:02 Huangjiaqi0421

添加弹幕的代码:

` BaseDanmaku danmaku = mDanmakuContext.mDanmakuFactory.createDanmaku(BaseDanmaku.TYPE_SCROLL_RL);

    if (danmaku == null || mDanmakuView == null) {
        return;
    }
    danmaku.text = text;
    danmaku.padding = 5;
    if (isSelf) {
        //本机发送
        danmaku.priority = 1;  // 一定会显示, 一般用于本机发送的弹幕
        //字体描边
        // danmaku.textShadowColor = Color.WHITE;
        //加边框
        danmaku.borderColor = Color.WHITE;
        //下划线
        // danmaku.underlineColor = Color.GREEN;
    } else {
        danmaku.priority = 0;  // 可能会被各种过滤器过滤并隐藏显示
    }
    if (TextUtils.isDigitsOnly(sendID)) {
        danmaku.userId = Integer.parseInt(sendID);
    } else {
        danmaku.userId = 0;//游客,一般不会出现这种情况
    }
    danmaku.isLive = islive;
    danmaku.setTime(mDanmakuView.getCurrentTime() + 1200);
    danmaku.textSize = 25f * (mParser.getDisplayer().getDensity() - 0.6f);
    danmaku.textColor = Color.WHITE;
    mDanmakuView.addDanmaku(danmaku);`

Huangjiaqi0421 avatar Feb 04 '17 06:02 Huangjiaqi0421

你换成DanmakuSurfaceView试一下 但是SurfaceView有点问题

getglory avatar Apr 12 '17 12:04 getglory

视屏使用的是ijkplayer 硬解,弹幕过滤danmaku.priority = 0; 卡顿还是严重,测试机型oppo R9

请问 解决了吗?我在压力测试 大量并发的时候也会发现卡顿

DorisGM avatar Jun 12 '19 01:06 DorisGM

你换成DanmakuSurfaceView试一下 但是SurfaceView有点问题

surfaceview有什么问题?

DorisGM avatar Jun 12 '19 01:06 DorisGM

你换成DanmakuSurfaceView试一下 但是SurfaceView有点问题

surfaceview有什么问题?

透明度方面的问题吧 我忘了 很久以前做的 普通的View会卡顿的,因为是在UI线程绘制的。SurfaceView是在子线程绘制的

getglory avatar Jun 27 '19 13:06 getglory