Search in sources :

Example 1 with DanamakuAdapter

use of com.example.gsyvideoplayer.adapter.DanamakuAdapter in project GSYVideoPlayer by CarGuo.

the class DanmakuVideoPlayer method initDanmaku.

private void initDanmaku() {
    // 设置最大显示行数
    HashMap<Integer, Integer> maxLinesPair = new HashMap<Integer, Integer>();
    // 滚动弹幕最大显示5行
    maxLinesPair.put(BaseDanmaku.TYPE_SCROLL_RL, 5);
    // 设置是否禁止重叠
    HashMap<Integer, Boolean> overlappingEnablePair = new HashMap<Integer, Boolean>();
    overlappingEnablePair.put(BaseDanmaku.TYPE_SCROLL_RL, true);
    overlappingEnablePair.put(BaseDanmaku.TYPE_FIX_TOP, true);
    DanamakuAdapter danamakuAdapter = new DanamakuAdapter(mDanmakuView);
    mDanmakuContext = DanmakuContext.create();
    mDanmakuContext.setDanmakuStyle(IDisplayer.DANMAKU_STYLE_STROKEN, 3).setDuplicateMergingEnabled(false).setScrollSpeedFactor(1.2f).setScaleTextSize(1.2f).setCacheStuffer(new SpannedCacheStuffer(), // 图文混排使用SpannedCacheStuffer
    danamakuAdapter).setMaximumLines(maxLinesPair).preventOverlapping(overlappingEnablePair);
    if (mDanmakuView != null) {
        //todo 替换成你的数据流
        mParser = createParser(this.getResources().openRawResource(R.raw.comments));
        mDanmakuView.setCallback(new master.flame.danmaku.controller.DrawHandler.Callback() {

            @Override
            public void updateTimer(DanmakuTimer timer) {
            }

            @Override
            public void drawingFinished() {
            }

            @Override
            public void danmakuShown(BaseDanmaku danmaku) {
            }

            @Override
            public void prepared() {
                if (getDanmakuView() != null) {
                    getDanmakuView().start();
                    if (getDanmakuStartSeekPosition() != -1) {
                        resolveDanmakuSeek(DanmakuVideoPlayer.this, getDanmakuStartSeekPosition());
                        setDanmakuStartSeekPosition(-1);
                    }
                    resolveDanmakuShow();
                }
            }
        });
        mDanmakuView.enableDanmakuDrawingCache(true);
    }
}
Also used : HashMap(java.util.HashMap) DanamakuAdapter(com.example.gsyvideoplayer.adapter.DanamakuAdapter) BaseDanmaku(master.flame.danmaku.danmaku.model.BaseDanmaku) SpannedCacheStuffer(master.flame.danmaku.danmaku.model.android.SpannedCacheStuffer) DanmakuTimer(master.flame.danmaku.danmaku.model.DanmakuTimer)

Aggregations

DanamakuAdapter (com.example.gsyvideoplayer.adapter.DanamakuAdapter)1 HashMap (java.util.HashMap)1 BaseDanmaku (master.flame.danmaku.danmaku.model.BaseDanmaku)1 DanmakuTimer (master.flame.danmaku.danmaku.model.DanmakuTimer)1 SpannedCacheStuffer (master.flame.danmaku.danmaku.model.android.SpannedCacheStuffer)1