package com.dl7.player.danmaku; import master.flame.danmaku.danmaku.model.BaseDanmaku; import master.flame.danmaku.danmaku.model.FBDanmaku; import master.flame.danmaku.danmaku.model.FTDanmaku; import master.flame.danmaku.danmaku.model.R2LDanmaku; import static master.flame.danmaku.danmaku.model.BaseDanmaku.TYPE_SCROLL_RL; /** * Created by long on 2016/12/22. * 弹幕转换器,用来进行自定义数据和弹幕的转换 */ public abstract class BaseDanmakuConverter<T extends BaseDanmakuData> { // BaseDanmaku parseDanmaku(T info); public abstract T convertDanmaku(BaseDanmaku danmaku); /** * 对弹幕的基础数据进行初始化 * @param data * @param danmaku */ protected void initData(T data, BaseDanmaku danmaku) { int danmakuType = TYPE_SCROLL_RL; if (danmaku instanceof R2LDanmaku) { danmakuType = BaseDanmaku.TYPE_SCROLL_RL; } else if (danmaku instanceof FBDanmaku) { danmakuType = BaseDanmaku.TYPE_FIX_BOTTOM; } else if (danmaku instanceof FTDanmaku) { danmakuType = BaseDanmaku.TYPE_FIX_TOP; } data.setType(danmakuType); data.setContent(danmaku.text.toString()); data.setTime(danmaku.getTime()); data.setTextSize(danmaku.textSize); data.setTextColor(danmaku.textColor); } }