DanmukuLight

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

demo运行后的效果如下:

目前支持以下需求

继承自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中添加

android:id="@+id/danmaku_container_broadcast"

android:layout_width="match_parent"

android:layout_height="80dp"/>

注:每条弹道的高度目前为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

android:id="@+id/dpv_broadcast"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="30dp">

android:id="@+id/danmaku_container_broadcast"

android:layout_width="match_parent"

android:layout_height="80dp"/>

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

danMuView.enableTouch(true);

danMuView.setOnTouchCallBackListener(new OnDanMuTouchCallBackListener() {

@Override

public void callBack(DanMuModel danMuView) {

}

});

在使用过程中有遇到bug,欢迎提issuse ! 若你觉得还不错,请点Star, 谢谢!

android直播弹幕开发,Android上专为视屏直播打造的轻量级弹幕库(100多kb)相关推荐

  1. 直播app源代码 直播软件开发Android UI动画 仿直播点赞飘心动画效果

    直播app源代码 直播软件开发Android UI动画 仿直播点赞飘心动画效果 一个飘心的小动画,之前看也看到网上有很多轮子,但是感觉不是很符合我的需求,所以自己就凑活凑活搞出来一个,废话不多说先看图 ...

  2. android移植 开发板,Android在TQ2440开发板上的移植

    原标题:Android在TQ2440开发板上的移植 一.目前进展 1.已经可以通过NFS在开发板上运行 最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经 ...

  3. android原生系统开发板,刷android系统到开发板上.doc

    刷android系统到开发板上 将安卓系统刷系统到开发板上 马亲民 2014.12.20 1.擦除NAND FLASH中原有的Windows CE1 2.加载USB引导文件4 3.下载Linux内核9 ...

  4. 笔记本android启动画面,android解锁界面开发分分钟教你做锁屏软件 -电脑资料

    想做个锁屏界面很久了,最近一周,历经千辛万苦,越过种种挫折,终于完美实现了这一要求,在此将锁屏思路分享出来, 注意:这不是什么一键锁屏,是类似"go锁屏"那样的锁屏界面. 准备:本 ...

  5. android集成EasyPlayer播放器播放实时流媒体视屏

    android集成EasyPlayer播放器播放实时流媒体视屏 最近公司项目需要实现一个rtsp实时流媒体视频的播放,在移动端尝试了多个第三方能播放rtsp流实时视频的软件后发现EasyPlayer的 ...

  6. 网络视频直播系统开发,连麦视频分屏处理如何实现?

    当传统的单主播直播方式热度不断下降时,在网络视频直播系统开发时就要开始实现连麦直播方式了,连麦直播方式能很好的调动主播和观众的互动积极性,但是在进行连麦直播的时候,我们需要在网络视频直播系统开发时做好 ...

  7. 萤石开放平台(视屏直播)

    萤石开放平台(视屏直播)   1.应用的建立 登入萤石开放平台的后台,[开发者服务]-[我的应用],建立一个应用,用于获取 AppKey,AppSecret 2.设置直播 [开发者服务]-[我的资源] ...

  8. Android直播系统的实现,直播APP开发Android端推流及播放

    想实现一个Android的直播系统,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代 ...

  9. 直播软件开发Android直播悬浮窗实现

    直播软件开发时Android游戏直播有时候需要跨应用去操作一些东西,比如打开摄像头,暂停直播等,比较不影响体验的一种方式就是加入一个悬浮窗,通过悬浮窗的按钮去跟直播软件应用交互.下面我就来简单介绍下如 ...

  10. Android在TQ2440开发板上的移植(转)

    一.目前进展 1.Android已经可以通过NFS在TQ2440开发板上运行 最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经实现,大家可以从: htt ...

最新文章

  1. 数据结构与算法——线性结构——线性表及其表示
  2. FPGA逻辑设计回顾(11)FPGA以及PC中的RAM与ROM
  3. Steam高赞游戏入门机器学习!不写代码,人人可玩,又能吸猫,汉化版已推出...
  4. Warm Up before Exercise
  5. 40行代码AC_HDU 1575 TrA 矩阵快速幂(附快速幂+矩阵快速幂的讲解)
  6. 古有诸葛亮八卦阵阻敌,今有iptables护网安
  7. Django中的form模块的高级处理
  8. 交互式反汇编器专业版IDA Pro的一点介绍
  9. 红旗Linux职称考试模块,计算机职称考试红旗Linux Desktop 6.0考试大纲
  10. 运用正则表达式在Asp中过滤Html标签代码的四种不同方法
  11. BI数据分析师工作说明
  12. CSS 实现超过固定高度后出现展开折叠按钮
  13. pandas取出特定行列数据
  14. 梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS
  15. 山东涛雒镇万亩水稻 国稻种芯·中国水稻节:日照迎来收割季
  16. html图片合成视频,将视频和图片合成到一个页面
  17. 小米Air笔记本以UEFI模式硬盘GPT分区启动Win7_64位系统
  18. P2P三种模式的分化和实质
  19. 新手利用QQ群排名技术长期引流方法分享
  20. Ufs测试硬盘的软件,Ufs格式的硬盘在WINDOWS下的读取程序

热门文章

  1. 提升SQLite数据插入效率低、速度慢的方法
  2. 删除数据库表的几种方法的比较
  3. 软件工程学习之七大实际开发模型的讲解,及模块化设计的理念
  4. 基于C#实现的个人日程管理系统
  5. 7723java版_绝代双骄_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
  6. JavaScript高级教程(面向对象编程)
  7. 做JSP大学实用教程实验
  8. 计算机网络与通信之物理层中的数据传输
  9. HP 瘦客户机 - 使用 ie4uinit.exe 应用时,Citrix HDX Flash 出现故障和错误
  10. git生成key以及小乌龟git不需要密码