美文网首页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