From 99b2de39d31520713c63ab3fe9b7dd7cc0542800 Mon Sep 17 00:00:00 2001 From: jhengazuki Date: Wed, 8 Oct 2025 13:12:24 +0800 Subject: [PATCH] Fix danmaku npe --- .../android/tv/player/danmaku/Parser.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/danmaku/Parser.java b/app/src/main/java/com/fongmi/android/tv/player/danmaku/Parser.java index 69ac3836c..fe369efce 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/danmaku/Parser.java +++ b/app/src/main/java/com/fongmi/android/tv/player/danmaku/Parser.java @@ -42,14 +42,17 @@ public class Parser extends BaseDanmakuParser { } Danmakus result = new Danmakus(IDanmakus.ST_BY_TIME); for (int i = 0; i < items.size(); i++) { - BaseDanmaku item = mContext.mDanmakuFactory.createDanmaku(items.get(i).getType(), mContext); - if (item.getType() == BaseDanmaku.TYPE_SPECIAL) continue; - DanmakuUtils.fillText(item, items.get(i).getText()); - item.textShadowColor = items.get(i).getShadow(); - item.textColor = items.get(i).getColor(); + DanmakuData data = items.get(i); + int type = data.getType(); + if (type == 2 || type == 3) type = 1; + BaseDanmaku item = mContext.mDanmakuFactory.createDanmaku(type, mContext); + if (item == null || item.getType() == BaseDanmaku.TYPE_SPECIAL) continue; + DanmakuUtils.fillText(item, data.getText()); + item.textShadowColor = data.getShadow(); + item.textColor = data.getColor(); item.flags = mContext.mGlobalFlagValues; - item.textSize = items.get(i).getSize(); - item.setTime(items.get(i).getTime()); + item.textSize = data.getSize(); + item.setTime(data.getTime()); item.setTimer(mTimer); item.index = i; synchronized (result.obtainSynchronizer()) {