文章来源:淘论文网   发布者: 毕业设计   浏览量: 43



还可以点击去查询以下关键词:
[这是]    [渲染]    [类弹]    [直播]    [大多数]    [适用]    [弹幕]    [一个]    [扩展]    [高扩展]    [这是一个iOS高扩展的弹幕渲染库,适用大多数直播类弹幕...]   

项目介绍:

KYBarrageKit

这是一个iOS高扩展的弹幕渲染库,适用大多数直播类弹幕场景。

gitHub下载:https://github.com/kingly09/KYBarrageKit

原因

公司是做直播电商平台的,商品需要在直播界面有弹幕效果,还有一些特殊的动画效果,根据商品提供的需要,结合网上的一些开源项目,自己造了轮子,写一个直播类弹幕渲染库,开题报告,以来满足我们商品多变的功能需求。

特征

支持弹幕的4个方位滚动方向;

自定义弹幕的滚动速度;

弹幕信息为NSMutableAttributedString类型,支持图片和文字弹幕,emoji表情符号等;

当是弹幕为KYBarrageDisplayTypeImage类型是,支持弹幕自定义高度;

弹幕的类型可以扩展自定义(目前支持纯文本和图文);

利用CABasicAnimation实现来弹幕动画效果;

支持批量主动发送弹幕,弹幕的暂停,清除,重启,开始等;

支持弹幕内存预警,清除弹幕缓冲池。

实现一些基础功能,更多的功能后续完善中......

效果如下图所示:

反馈

如果需要帮助,可以使用QQ: 362108564联系我 或weibo: 留言.

如果你发现了一个bug,打开一个 issue.

如果您有一个功能请求,请打开一个 issue.

如果您想贡献,请提交一个请求.

如果有任何你觉得不对的地方,或有更好的建议,以上联系都可以联系我。 十分感谢!

安装要求

Xcode 7 +

iOS 7.0 +

手动安装

先下载项目后,将子文件夹 KYBarrageKit 拖入到项目中, 导入头文件KYBarrageKit.h 开始使用.

CocoaPods安装

你可以在 Podfile 中加入下面一行代码来使用 KYBarrageKit

pod 'KYBarrageKit'

使用 cocoaPods 管理第三方库, 如果电脑没有安装 cocoapods,请先安装 cocoapods。安装方式可参考:[最新的cocoapods安装] ()

使用

在需要使用弹幕渲染功能的地方

#import “KYBarrageKit”

创建一个 KYBarrageManager *manager 对象,并将其 view add 到你想要添加弹幕动画的 view 上,如下面所示:

@interface ViewController () @property (strong, nonatomic) KYBarrageManager *manager; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = [UIColor whiteColor]; _manager = [KYBarrageManager manager]; _manager.bindingView = self.view; _manager.scrollSpeed = 30; _manager.refreshInterval = 1.0; }

发送一个弹幕

int a = arc4random() % 100000; NSString *str = [NSString stringWithFormat:@'I'm coming %d ',a]; NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:str]; [attr addAttribute:NSForegroundColorAttributeName value:RandomColor() range:NSMakeRange(0, str.length)]; KYBarrageModel *m = [[KYBarrageModel alloc] initWithBarrageContent:attr]; [_manager showBarrageWithDataSource:m]; // Scroll Barrage

设置弹幕显示区域,开题报告,支持四个方向,默认为 KYBarrageDisplayLocationTypeDefault 整个显示区域

全局设置

_manager.displayLocation = KYBarrageDisplayLocationTypeTop;

或 当个子弹幕设置

KYBarrageModel *m = [[KYBarrageModel alloc] initWithBarrageContent:attr]; m.displayLocation = _manager. KYBarrageDisplayLocationTypeTop;

支持显示区域对应NSInteger的枚举:

KYBarrageDisplayLocationTypevaluenote
KYBarrageDisplayLocationTypeDefault   0   整个显示区域  
KYBarrageDisplayLocationTypeTop   1   顶部部分  
KYBarrageDisplayLocationTypeCenter   2   中间部分  
KYBarrageDisplayLocationTypeBottom   3   底部部分  
KYBarrageDisplayLocationTypeHidden   4   不显示  

设置弹幕显示位置,支持四个方向。

全局设置

_manager.scrollDirection = KYBarrageScrollDirectRightToLeft;

或 当个子弹幕设置

KYBarrageModel *m = [[KYBarrageModel alloc] initWithBarrageContent:attr]; m.direction = _manager.scrollDirection;

支持四个方向对应NSInteger的枚举:

KYBarrageScrollDirectionvaluenote
KYBarrageScrollDirectRightToLeft   0   <<<<<  
KYBarrageScrollDirectLeftToRight   1   >>>>>  
KYBarrageScrollDirectBottomToTop   2   ↑↑↑↑↑  
KYBarrageScrollDirectTopToBottom   3   ↓↓↓↓↓  

主动拉取弹幕数据发弹幕,设置 KYBarrageManagerDelegate 委托,调用-delegate barrageManagerDataSource返回数据

设置代理委托

_manager.delegate = self; [_manager startScroll]; //开启主动获取弹幕#p#分页标题#e#

调用方法

- (id)barrageManagerDataSource { int a = arc4random() % 10000; NSString *str = [NSString stringWithFormat:@'%d digg',a]; NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:str]; [attr addAttribute:NSForegroundColorAttributeName value:RandomColor() range:NSMakeRange(0, str.length)]; KYBarrageModel *m = [[KYBarrageModel alloc] initWithBarrageContent:attr]; m.displayLocation = _manager.displayLocation; m.direction = _manager.scrollDirection; m.barrageType = KYBarrageDisplayTypeImage; m.object = [UIImage imageNamed:[NSString stringWithFormat:@'digg_%d',arc4random() % 10]]; return m; }

设置清除弹幕。

[_manager closeBarrage];

设置弹幕的暂停与恢复。

// 1. 在屏幕上的阻塞被暂停,停止获取新的阻塞 // 2. 当前的屏幕上的弹幕重新滚动,并获得一个开始的新弹幕推送 [_manager pauseScroll];

设置弹幕的类型目前支持纯文本KYBarrageDisplayTypeDefault 和图文KYBarrageDisplayTypeImage,可以在 KYBarrageScene自定义其他的类型。

m.barrageType = KYBarrageDisplayTypeImage;

其他

支持弹幕的点击事件

如果弹幕为KYBarrageDisplayTypeImage型的弹幕时,请重写ViewController的 touchesBegan 方法

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint touchPoint = [touch locationInView:self.view]; [[_manager barrageScenes] enumerateObjectsUsingBlock:^(BarrageScene * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj.layer.presentationLayer hitTest:touchPoint]) { /* if barrage's type is ` `KYBarrageDisplayTypeImage` `, add your code here*/ NSLog(@'message = %@',obj.model.message.string); } }]; }

如DEMO里面的点击弹幕,弹幕停顿3s后,进行滚动,也可以扩展其他事件,如下图所示:

鼓励

它若不慎给您帮助,请不吝啬给它点一个star,是对它的最好支持,非常感谢!


这里还有:


还可以点击去查询:
[这是]    [渲染]    [类弹]    [直播]    [大多数]    [适用]    [弹幕]    [一个]    [扩展]    [高扩展]    [这是一个iOS高扩展的弹幕渲染库,适用大多数直播类弹幕...]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/8582.docx
  • 上一篇:UITableView Action毕业设计Cell 滑动手势单元格
  • 下一篇:iOS:根据内容动态计毕业设计算高度的UITableViewCell