美文网首页iOS DeveloperiOS进阶之路iOS学习笔记
只需两行代码快速创建弹幕—SKDanmakuManager

只需两行代码快速创建弹幕—SKDanmakuManager

作者: Lskyme | 来源:发表于2017-05-02 11:00 被阅读0次

前言


最近的项目在做直播,所以这一段时间对弹幕进行了研究。网上找了一下,Android端那边有DanmakuFlameMaster这样有名的弹幕库;iOS这边就比较少了,找到BarrageRenderer这个库。用了一下这个库也观摩了部分源码,可定制性很强,但是对于我自己的需求来说,就稍微有点大材小用了。所以就干脆自己写了一个开源的弹幕库SKDanmakuManager,功能不多,但使用还是比较方便,最少只需要两句话就可以搞定。

功能特点


— 弹幕基于CATextLayer,渲染更快性能消耗更少

— 弹幕的播放、暂停、显示和隐藏

— 速度范围设置

— 弹幕的垂直间距及水平间距设置

— 字体大小、颜色修改

— 开启/关闭碰撞检测

— 小屏及全屏切换

— 支持emoji表情

— 支持自定义字体

TODO:

— 增加对弹幕背景的支持

— 增加悬浮弹幕

系统要求


iOS 8.0+

效果图

由于简书上传大小限制,就简单传几张,具体的请到Github上看效果。

播放 显示/隐藏 暂停/继续

安装


请到Github上查看(偷懒)

使用方法


初始化

@property(nonatomic, strong) SKDanmakuManager *manager;

...

_manager = [SKDanmakuManager managerWithLayer:_playerLayer];

//或者

//_manager = [[SKDanmakuManager alloc] init];

//_manager.layer = _playerLayer;

创建并播放

[_manager createDanmakuWithText:_inputTextField.text color:[UIColor whiteColor]];

到这里,就可以正常使用啦,以下就是一些可以定制的部分了。


屏幕大小改变

当视频的frame改变后(如进入全屏、退出全屏等),应该使用以下方法来刷新弹幕:

[_manager layoutDanmakusWithFontSize:24];

可配置参数

///以下参数都有默认值,初始化后可以不改变

//是否开启碰撞检测

//_manager.allowCovered = NO;

//设置自定义弹幕字体名称

//_manager.fontName = @"Papyrus";

//设置弹幕字体大小

_manager.fontSize = 15.0f;

//设置弹幕最大/最小速度

//_manager.maxSpeed = 100.0f;

//_manager.minSpeed = 50.0f;

//设置弹幕之间的垂直间距

//_manager.verticalSpacing = 10.0f;

//设置弹幕之间的水平间距

//_manager.horizontalSpacing = 10.0f;

其他功能

其他诸如暂停、隐藏等功能,就不一一赘述了(懒),可以去头文件里查看。

//请到头文件查看其他功能

'SKDanmakuManager.h'


最后

第一次写开源库,许多地方可能不尽人意,后面有时间我会继续维护和优化这个库的。如果觉得本库还不错,希望您能够到Github上帮忙star一下;如果您使用中有问题或者有什么意见建议请提交issue或者在下面留言,只要我看到了就会回复,谢谢。

相关文章

网友评论

    本文标题:只需两行代码快速创建弹幕—SKDanmakuManager

    本文链接:https://www.haomeiwen.com/subject/seedzttx.html