基于IM实现直播礼物效果
来源:互联网 发布:linux reboot后起不来 编辑:程序博客网 时间:2024/06/02 12:41
项目已经上线。更新
(改:由于项目直播还未上线,确保保密性,暂时只提供部分源码,只是简单技术交流,为大家做自己做直播刷礼物提供一个简单思路。)
首先,想要实现直播礼物效果,只有即时通讯,其他方法暂时没有想到,我们基于IM至少有两种方法来实现效果。
即时通讯可以选择,融云,网易,腾讯,融云和腾讯的即时通讯是免费的(对用户量有要求,小公司足够了)
建议用腾讯吧,毕竟做了这么多年通讯,效果还是应该问题,利于后期支撑,融云通讯开始收费了,以前免费的
我这里用的是网易的,他发信息的次数有限制,好像是200次/分钟,大于这个就会自动屏蔽该用户的消息,不过也足够了。
第一种:网易的IM提供发送文字,发送图片,发送文件功能·····如图:
我们可以在直播房间发送任何你想发送的东西,然后调用相关接口,实现接收,不过类似的这种东西需要归档和解档处理,网易是这样做的
这里用到的是归档操作,想了解归档请看这里
http://blog.csdn.net/xoxo_x/article/details/53313850
大家可以参考一下,在你处理的时候需要根据消息的类型type分类,有一丢丢麻烦,我没有这样做。
然而,归档是必须的,虽然自定义字符串,作为识别,很方便,但是,从长远来讲,归档是必须的,因为,自定义字符串识别,有太多的冗余字段,维护起来并不方便,希望大家不要贪图一时麻烦,当然,如果对于高并发要求不高的就无所谓了
第二种方法:我是这样做的,我对发送礼物,添加一个特殊加密字段,然后发送文本信息,组群用户接收到之后会判断处理,当文本信息为礼物字段时,进行拦截,然后代码进行操作,实现UI变化,一定要拦截到信息,否则用户在聊天界面会收到,该加密的特殊字符串,那么老板就哭了。部分代码如下:
因为收费的原因,即使你知道了特殊字段的含义,然而并没有什么用,后台会进行用户金钱验证,没有钱,扣费不成功依旧发不出礼物
关于本地礼物动画是怎么写的,网上有很多Demo,一会儿我会提供给大家一个demo链接
礼物效果也不是那么简单,需要用到线程的分配,你需要处理高的并发下的收到的大量信息,是如何井条有序的显示在屏幕上的,这点需要点功底,我这里会给大家一个非常不错的demo。
那么整个消息的发送,,接收,,显示情况是如何进行的?
首先,你需要自己写一个礼物的presentBar,用collectiobview来写,这个不固定,设置点击事件在点击事件中,出发sendmessage操作,如果使用特殊加密字段。那么你给每一个礼物添加一个特殊的字符串就好了,然后sendMessage操作,发送的是一个文本信息。
礼物的展示列表最好用collectionview写,各大直播平台用的应该也是,i简单方便
然后自己写一个代理,在直播页面调用:
效果图如下:
这时候网易的IM内部的方法就有用了,我们用的是他的IM,他哟一个IM的包,header中包含这方法。
当我们发送消息时,他会调用如下方法:
首先,
在这个操作中,我们需要更新本地的UI,需要做一次拦截工作。
然后,他会依次调用
:
- (void)onRecvMessages:(NSArray *)messages;;;;
在这个方法中我们收到消息,操作拦截,然后使用线程处理礼物信息,具体一点,还需要在这里处理礼物的模型,将模型信息储存到数组,然后,添加线程,线程在礼物Demo中已经封装好,大家不用担心,这样UI就处理完毕。
备注:是因为代理写错了,不是线程的问题
最后附上礼物效果图!
重点:礼物效果动画,并非我写,希望大家支持原创
关于这个礼物动画,涉及到了帧动画,以及自动释放池,写的相当牛逼,效果虽然一般,但是不会卡。
https://github.com/chenzhenJG/PresentAnimation
有人问我扣费在哪里进行?
答:这个需要在服务器进行,在本地肯定是不行的,需要保证用户数据的立即同步,否则会有风险,就像程序中加锁一样,不嗯能够用户在这个设备的钱花没了,另一个设备还有呢!
此外,我还想说一句,就是要注意高内聚低耦合,冗余代码要控制好,多自定义,不要在一个类中写几千行代码,后期维护累死你
- 基于IM实现直播礼物效果
- 直播间礼物连击效果
- android直播app礼物连击动画效果
- Android 仿映客直播间给主播发送礼物(实现连击效果)
- 仿照映客的直播界面的刷礼物效果
- LiveGiftShow-iOS直播弹幕效果(礼物连击)
- RTMP直播效果实现
- BSocket 直播礼物。实现。长连。逻辑,界面 demo
- 直播礼物系统设计
- fir.im Weekly - 揭秘直播移动 APP 技术实现
- 直播-动态礼物(豪华礼物)
- 基于Web的IM实现思考
- android基于bmob实现im即时通讯
- Android平台apng动画播放的实现,直播间礼物动画的实现
- 仿斗鱼直播的弹幕效果实现
- 《转》实现斗鱼直播弹幕效果
- Android直播中弹幕效果实现
- 仿斗鱼直播的弹幕效果实现
- Balanced Partition of Array
- JSON数据与XML数据各有哪些优缺点
- 单例吐司工具类
- 山东理工OJ 2850 商人小鑫
- java反射知识点简单回顾
- 基于IM实现直播礼物效果
- 顺序表应用3:元素位置互换之移位算法
- @property面试整理
- php编程: 怎样计算某一值在数组中重复出现的次数?
- MYSQL 的用户与权限
- 创客聚会之ABI创客空间
- 山东理工OJ 2851 懒虫小鑫
- eclipse创建aidl文件
- BZOJ 1008: [HNOI2008]越狱