美文网首页
Swift - 给你的直播加上弹幕吧

Swift - 给你的直播加上弹幕吧

作者: BeijingIamback | 来源:发表于2016-08-05 21:02 被阅读598次

推荐一个轮子:BarrageRenderer 一个 iOS 上的开源弹幕渲染库, readme 都是用中文写,很容易理解。

首先 ,下载下轮子,把BarrageRenderer/目录拖到你的工程文件夹下。

其次,在你的 桥接文件里

#import "BarrageRenderer.h" 

然后你就可以在项目里使用这个轮子了。

接着说下怎么使用轮子: 当然在readme里有非常详细的介绍
上代码: 在你的VC 中使用

var renderer:BarrageRenderer!
// MARK: - 构建弹幕,添加到VC的view
    func buildDanMu() {
        self.renderer = BarrageRenderer.init()
        self.renderer.canvasMargin = UIEdgeInsetsMake(SCREEN_WIDTH * 0.3, 10, 10, 10)
        self.view.addSubview(renderer.view)
// 这两句相信你看的懂
        let safeObj = NSSafeObject.init(object: self, withSelector: #selector(PlayViewController.autoSenderBarrage))
        timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: safeObj, selector: #selector(NSSafeObject.excute), userInfo: nil, repeats: true)
        
    }

// 这是自动发送的方法,这里判断下,限制屏幕上弹幕的数量
func autoSenderBarrage() {
        let spriteNumber :NSInteger = renderer.spritesNumberWithName(nil)
        if spriteNumber <= 50 {
            renderer.receive(walkTextSpriteDescriptorWithDirection(BarrageWalkDirection.R2L.rawValue))
        }
    }

最精彩的部分来了,这里就是你想显示怎么样的弹幕。

func walkTextSpriteDescriptorWithDirection(direction:UInt) -> BarrageDescriptor{
        let descriptor:BarrageDescriptor = BarrageDescriptor()
        descriptor.spriteName = NSStringFromClass(BarrageWalkTextSprite.self)
        descriptor.params["text"] = self.danmuText[Int(arc4random())%(self.danmuText.count)]
        descriptor.params["textColor"] = UIColor(red: CGFloat(arc4random()%255) / 255, green: CGFloat(arc4random()%255) / 255, blue: CGFloat(arc4random()%255) / 255, alpha: 1)
        descriptor.params["speed"] = Int(arc4random()%100) + 50
        descriptor.params["direction"] = direction
        return descriptor
    }

在这里,离开界面的时候最好把弹幕停止,并且将弹幕的view从视图上移除
weakSelf!.renderer.stop() && weakSelf!.renderer.view.removeFromSuperview()

看一下效果图:


效果图

相关文章

网友评论

      本文标题:Swift - 给你的直播加上弹幕吧

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