-
Notifications
You must be signed in to change notification settings - Fork 481
changsanjiang edited this page Jul 11, 2022
·
5 revisions
- 导入头文件
#import <SJBaseVideoPlayer/SJDanmakuItem.h>
- 创建一条文本弹幕
SJDanmakuItem *item = [SJDanmakuItem.alloc initWithContent:[NSAttributedString sj_UIKitText:^(id<SJUIKitTextMakerProtocol> _Nonnull make) {
make.append(@"我是一条弹幕! 我是一条弹幕!");
make.font([UIFont boldSystemFontOfSize:16]);
make.textColor(UIColor.whiteColor);
make.stroke(^(id<SJUTStroke> _Nonnull make) {
make.color = UIColor.blackColor;
make.width = -1;
});
}]];
- 加入队列中(该条弹幕将会在合适的时机自动显示)
[self.player.barrageQueueController enqueue:item];
如需暂停移动, 可如下操作:
// 可通过`isPaused`来判断当前状态
[self.player.danmakuPopupController pause];
如需恢复移动, 可如下操作:
// 可通过`isPaused`来判断当前状态
[self.player.danmakuPopupController resume];
如需移除未显示的弹幕, 可如下操作:
[self.player.danmakuPopupController emptyQueue];
如需移除已显示的弹幕, 可如下操作:
[self.player.danmakuPopupController removeDisplayedItems];
如需移除所有弹幕(队列中的及已显示的弹幕), 可如下操作:
[self.player.danmakuPopupController removeAll];
如需禁用, 可操作如下:
// 可通过`isDisabled`来判断当前的状态
self.player.danmakuPopupController.disabled = YES;
注意禁用弹幕后, 将无法添加弹幕, 请在需要使用时恢复其状态.
弹幕轨道默认存在4个. 当需要更多的轨道时, 可重新初始化danmakuPopupController
, 操作如下:
// 修改轨道数量为5个.
_player.danmakuPopupController = [SJDanmakuPopupController.alloc initWithNumberOfTracks:5];
可为每条轨道配置弹幕移动速率, 弹幕之间的间距, 行高等等... 操作如下:
SJDanmakuPopupController *controller = _player.danmakuPopupController;
SJDanmakuTrackConfiguration *trackConfiguration = controller.trackConfiguration;
// 修改弹幕移动速度
trackConfiguration.rate = 1.0;
// 修改轨道行间距
trackConfiguration.topMargin = 3.0;
// 修改弹幕之间的间距
trackConfiguration.itemMargin = 38;
// 修改轨道高度
trackConfiguration.height = 26;
// 使配置生效
[controller reloadTrackConfiguration];
// 也可以通过 delegate 的方式进行修改;
// controller.trackConfiguration.delegate = self;