简介
OpenDanmaku是Android中目前非常流行的第三方弹幕控件,可以实现在播放视频、直播和评论模块中弹出用户的实时评论,并且以滚动的方式显示。该框架非常适合应用在商城、音乐播放和新闻类软件中的评论功能模块。
项目地址
https://github.com/linsea/OpenDanmaku
效果演示
使用方法
1.在build.gradle添加module
implementation project(':opendanmaku')
在官方的项目中,是在build.gradle中添加依赖
dependencies {
compile 'com.linsea:opendanmaku:1.0.0@aar'
}
2.在布局文件中加入自定义的弹幕View
<com.opendanmaku.DanmakuView
android:id="@+id/danmakuView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
app:end_Y_offset="0.8"
app:max_row="4"
app:max_running_per_row="2"
app:pick_interval="1000"
app:show_debug="false"
app:start_Y_offset="0.2" />
DanmakuView的自定义属性
* start_Y_offset
第一条播放航道距离弹幕View上边缘的偏移量,注意值是百分比量,以弹幕View的高度为基准,简而言之就是弹幕View的上边缘空出多少百分比.
* end_Y_offset
与上一个属性类似,最后一条播放航道距离弹幕View上边缘的偏移量,注意值是百分比量,以弹幕View的高度为基准,主要作用是便于在弹幕View的底部留出一定的空白.
* max_row
设置最多多少条播放航道.
* max_running_per_row
每条航道上最多同时有多少条弹幕运行.
* pick_interval
每隔多少毫秒取出一条弹幕来播放.
* show_debug
是否显示航道线及播放帧率,调试时很有用,主要用于调试.
3.在代码中引入OpenDanmaku
/**
* 构建弹幕的数据集合
* @return
*/
private List<IDanmakuItem> initItems() {
List<IDanmakuItem> list = new ArrayList<>();
//创建100条文本的弹幕
for (int i = 0; i < 100; i++) {
IDanmakuItem item = new DanmakuItem(this, i + " : plain text danmuku", mDanmakuView.getWidth());
list.add(item);
}
//创建100条文本带图片的弹幕
String msg = " : text with image ";
for (int i = 0; i < 100; i++) {
ImageSpan imageSpan = new ImageSpan(this, R.drawable.em);
SpannableString spannableString = new SpannableString(i + msg);
spannableString.setSpan(imageSpan, spannableString.length() - 2, spannableString.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
IDanmakuItem item = new DanmakuItem(this, spannableString, mDanmakuView.getWidth(), 0, 0, 0, 1.5f);
list.add(item);
}
return list;
}
//添加到弹幕控件里面
mDanmakuView.addItem(list, true);
这样基本就实现了在播放视频的时候弹幕的滚动以及发送弹幕。如果有需要代码的话,可以去我的csdn或者是github上进行下载。
下载
CSDN:https://download.csdn.net/download/wen_haha/10861562
Github:https://github.com/kongkongdaren/OpenDanmakuDemo