DanmakuKit is a high performance library that provides the basic functions of danmaku. It provides a set of processes that allow you to generate the danmaku cell via cellModel, and each danmaku can be drawn either synchronously or asynchronously.
As shown in the GIF below, DanmakuKit offers three types of danmaku launch: floating, top and bottom.
- Speed adjustment
- Track height adjustment
- Display area adjustment
- Click callback
- Support to pause or play a single danmaku
- Provides property to specify whether danmaku can overlap
- Support to disable danmaku for different types of tracks
- Support for setting progress property to render the danmaku immediately on the view
- Support to clear all danmaku
- Support playing speed
If you have any requirements that you want DanmakuKit to provide, you can raise issue.
- Support mask danmaku
For detailed usage, see the Example project, which provides a functional demonstration and an example of using it with a player.
- Implement a model to inherit from the DanmakuCellModel. In this model you need to add your own properties and methods to draw the danmaku.
- Implement a View inherited from DanmakuCell. Override the
willDisplay
method to prepare a thread-safe model for drawing a danmaku. Then you need to override thedisplaying
method, and use CGContext draw your danmaku. It is important to note when calldisplaying
method was not in the main thread, so you need to consider multithreading. And finally, if you also need to do something at the end of the drawing, you can override thedidDisplay
method to do that. - Pass the DanmakuCellModel to the DanmakuView so that it will fire the danmaku for you.
swift 5.0+
iOS 9.0+
DanmakuKit is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'DanmakuKit', '~> 1.2.1'
DanmakuKit is available under the MIT license. See the LICENSE file for more info.