您当前的位置: 首页 >  android

Android 上专为视屏直播打造的轻量级弹幕库(100 多 kb)

发布时间:2017-08-26 00:04:17 ,浏览量:0

DanmukuLight
项目地址: hpdx/DanmukuLight
简介:Android 上专为视屏直播打造的轻量级弹幕库(100 多 kb)
更多: 作者    提 Bug    示例 APK   
标签:
视屏直播弹幕-

Android 上专为视频直播打造的轻量级弹幕库(100 多 kb)

demo 运行后的效果如下:

下载示例 Apk

目前支持以下需求
  • 继承自 View 实现的 DanMuView(直播间的弹幕,推荐使用这种)
  • 继承自 SurfaceView 实现的 DanMuView
  • 支持显示富文本内容
  • 支持弹幕单击事件的处理
使用:

在 Module 中的 build.gradle 文件里,添加以下依赖:

allprojects {
    repositories {
        jcenter()
        mavenCentral() // 切记要添加这个

        maven {
            url 'https://dl.bintray.com/hpdx/maven/'
        }
    }
}

compile 'com.anbetter:danmukulight:1.0.1'

在 xml 中添加


			

注:每条弹道的高度目前为 40dp

启动弹幕引擎

mDanMuContainerBroadcast = (DanMuView) findViewById(R.id.danmaku_container_broadcast);
        mDanMuContainerBroadcast.prepare();

创建弹幕对象

DanMuModel danMuView = new DanMuModel();
        danMuView.setDisplayType(DanMuModel.RIGHT_TO_LEFT);
        danMuView.setPriority(DanMuModel.NORMAL);
        danMuView.marginLeft = DimensionUtil.dpToPx(mContext, 30);

        // 显示的文本内容
        danMuView.textSize = DimensionUtil.spToPx(mContext, 14);
        danMuView.textColor = ContextCompat.getColor(mContext, R.color.light_green);
        danMuView.textMarginLeft = DimensionUtil.dpToPx(mContext, 5);

        if (entity.getRichText() != null) {
            danMuView.text = RichTextParse.parse(mContext, entity.getRichText(), DimensionUtil.spToPx(mContext, 18), false);
        } else {
            danMuView.text = entity.getText();
        }

        // 弹幕文本背景
        danMuView.textBackground = ContextCompat.getDrawable(mContext, R.drawable.corners_danmu);
        danMuView.textBackgroundMarginLeft = DimensionUtil.dpToPx(mContext, 15);
        danMuView.textBackgroundPaddingTop = DimensionUtil.dpToPx(mContext, 3);
        danMuView.textBackgroundPaddingBottom = DimensionUtil.dpToPx(mContext, 3);
        danMuView.textBackgroundPaddingRight = DimensionUtil.dpToPx(mContext, 15);

将弹幕添加到弹道上

mDanMuContainerBroadcast.add(danMuView);

OK 了,就这么简单,一条弹幕就发送成功了

隐藏或者显示弹幕

mDanMuContainerBroadcast.hideAllDanMuView(hide); // boolean
对了,若要弹幕是能响应单击事件,需要添加如下处理:

在 xml 中添加 DanMuParentView


        

    

在构建弹幕对象的代码中添加

danMuView.enableTouch(true);
        danMuView.setOnTouchCallBackListener(new OnDanMuTouchCallBackListener() {
             @Override
             public void callBack(DanMuModel danMuView) {

             }
        });
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    110950博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1211s