# 仿映客直播app(ios原生)
说明:
====================================
实战是学习一门技术最快的捷径,之前大欢老师视频教学仿映客app的ios教学。但是因为时间比较久,映客应该做过一次改版,按照大欢老师的视频已经没有效果了,所以我就参考着大欢老师的教学视频,再根据最新的接口和界面,新仿了一遍映客app,在这里通常工作中使用到的ios控件效果大部分都有了,非常值得做为学习参考。
**<font color=red face="黑体">特别声明:本代码仅学习使用,如果涉及侵权,可删!</font>**
使用:
====================================
下载
------------------------------------
使用git从[inke-demo](https://github.com/shawn-tangsc/inke-demo)主页下载项目
``` bash
git clone https://github.com/shawn-tangsc/inke-demo
```
pod 初始化
------------------------------------
从终端进入项目`Podfile`所在的文件夹,然后执行初始化命令
``` bash
pod install
```
配置和导入ijkplayer(直播引流)
------------------------------------
播放直播视频和普通视频是稍微有点不同的,ios自带的视频播放是无法播放直播地址的视频,所以要导入bilibili的[ijkplayer](https://github.com/Bilibili/ijkplayer),由于framework 太大了,所以我就不上传了,可以按照下面路径学习一下,或者到我指定的[百度云盘](https://pan.baidu.com/s/1pLzb8uf)去下载(密码:q1us)。
+ 从github上面下载控件
``` bash
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
```
+ 进入目标文件夹
``` bash
cd ijkplayer-ios
```
+ 执行两个脚本
``` bash
./init-ios.sh
./init-ios-openssl.sh
```
+ 进入该文件夹下的ios文件夹
``` bash
cd ios
```
+ 执行4个脚本
```bash
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
./compile-openssl.sh clean
./compile-openssl.sh all
```
+ 再进入该目录下的IJKMediaPlayer目录,双击.xcodeproj文件,然后选择IJKMediaPlayerFrameworkWithSSL,点击run生成IJKMediaPlayerFrameworkWithSSL.framework.
+ 将此frameword放到inke-demo文件夹下,或者自行到inke-demo的项目中去改IJKMediaPlayerFrameworkWithSSL.framework的路径
直播推流
------------------------------------
这里使用的是[LFLiveKit](https://github.com/LaiFengiOS/LFLiveKit),但是因为没有合适和直播推流的测试服务器地址,而且抓包映客的直播服务器可以连接,但是不能播放,所以该功能先只做到这里,待以后继续开发。
集成友盟(第三方登录)
------------------------------------
大欢老师视频教学里面的友盟版本已经比较低了,所以我根据最新的[友盟文档](http://dev.umeng.com/social/ios/ios9)完成了第三方登录的功能(因为一些key的原因,我暂时只做了微信登录的功能,其他的根据文档可以自行开发)。
其中,我因为没明白视频里面的sdk集成方式,所以我还是用了传统的pod的方式集成的。
```
pod 'UMengUShare/UI'
# 集成新浪微博 【友盟官网技术文档这里标点符号有错,导入的时候记得更改】
pod 'UMengUShare/Social/Sina'
# 集成微信
pod 'UMengUShare/Social/WeChat'
# 集成QQ
pod 'UMengUShare/Social/QQ'
```
**<font color=red face="黑体">如果是真机的话可以使用微信登陆看效果,我也为模拟器登陆做了一个登陆后门,点微博登陆就可以了</font>**
执行
------------------------------------
双击inke-demo下的.xcworkspace 应该就可以run了。
**<font color=red face="黑体">如果执行的时候在socketIO报错</font>**
```
Swift Compiler Error
SocketIOClient.Swift line 82
private lazy var logType = "SocketIOClient{(nsp)}"
(Cannot use instance member 'nsp' within property initializer; property initializers run before 'self' is available)
SocketEngine.Swift line 199
if let data = Data(base64Encoded: noPrefix, options: .ignoreUnknownCharacters) {
(Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'?)
SocketEngine.Swift line 663
func setConnected(_ value: Bool) {
(Method 'setConnected' with Objective-C selector 'setConnected:' conflicts with setter for 'connected' with the same Objective-C selector)
```
是因为你的swift版本过时,需要更新。点击Xcode顶部的Edit => Convert => TO Current Swift Syntas,选择SocketIO.framework,Starscream.framework和你的项目名.framework 然后covert。
聊天室
------------------------------------
用第三方库Socket.IO-Client-Swift 做了一个聊天室,这个聊天室的后台是用nodejs的socket.io搭建的,而且我也已经[上传github了](https://github.com/shawn-tangsc/node-socket-chat)。
+ 联调
>1.启动node服务器
>>node服务器的启动我已经在[node-socket-chat](https://github.com/shawn-tangsc/node-socket-chat)写过了。这里就不再赘述了。
>2.修改ip地址
>>请到 XX/inke-demo/Class/Other/property.plist 修改socketIP就可以了
同样,我做了判断,如果不需要联调后端的,也一样可以看效果。
需要帮助的问题
------------------------------------
在开发的时候,我碰到了几个问题,一直没思路,有的还放着未开发,有的想办法绕过去了,如果有大神知道怎么解决,非常感谢能给个思路!可以直接加我qq(344509434),或者直接发我邮箱tangscsh@icloud.com, 非常感谢!!
+ 我使用最新版Socket.IO-Client-Swift 13.1.0 版本的时候,怎么都调用不通我后台node的socketio,最后只能退版本绕过去。
+ 直播引流的时候,是怎么做到像映客这样,可以分屏(小屏还可拖动)播放的,直播流的源只有一个啊。
效果
------------------------------------
<!--<img src="/gif/login-page.gif" width="310" />-->
![login-page.gif](https://github.com/shawn-tangsc/inke-demo/blob/master/gif/login-page.gif)
![main-page.gif](https://github.com/shawn-tangsc/inke-demo/blob/master/gif/main-page.gif)
![live-page.gif](https://github.com/shawn-tangsc/inke-demo/blob/master/gif/live-page1.gif)
<!--<img src="/styles/images/zhifubao.PNG" alt="支付宝二维码付款给Freud" width="310" />-->
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
仿映客直播app(最新)原版礼物列表,直播弹幕,最新热门页面,原版动画登陆页,实现了oc项目使用Socket.IO-Client-Swift 绑定后台node服务器实现实时聊天功能 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备、移动设备等 操作系统:LInux、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
资源推荐
资源详情
资源评论
收起资源包目录
项目使用Socket.IO-Client-Swift 绑定后台node服务器实现实时聊天功能.zip (376个子文件)
live-page1.gif 5.33MB
live-page.gif 2.28MB
login-page.gif 856KB
main-page.gif 651KB
.gitignore 31B
TSCHttpTool.h 2KB
TSCSwitch.h 2KB
TSCCollectionViewFlowLayout.h 2KB
TSCLive.h 2KB
TSCGifts.h 1KB
TSCMainTopView.h 1KB
TSCCreator.h 1KB
UIImageView+SDWebImage.h 1KB
APIConfig.h 893B
TSCMacros.h 853B
TSCChatModel.h 837B
UIView+TSCAlert.h 775B
TSCTabBar.h 770B
TSCLiveHandler.h 739B
TSCBulletManager.h 628B
TSCAdvertisingRecord.h 600B
TSCLiveSwiperChannel.h 575B
TSCLiveSwiperData.h 556B
TSCLiveChatViewController.h 543B
TSCBulletView.h 527B
TSCResource.h 526B
TSCLiveSwiperChannelResource.h 495B
TSCResourceExtra.h 474B
TSCCommonUtils.h 472B
TSCBaseHandler.h 463B
TSCHotSpecialData.h 455B
TSCLocationManager.h 448B
TSCLiveSwiperExtra.h 426B
TSCLiveSwiperCard.h 379B
TSCHotSpecialCard.h 378B
TSCAdvertisingData.h 378B
TSCData.h 377B
TSCCoverElements.h 368B
TSCPlayerViewController.h 364B
TSCCacheHelper.h 356B
TSCCover.h 353B
TSCLabel.h 351B
TSCCards.h 342B
TSCExtra.h 336B
TSCGiftCell.h 328B
TSCFlow.h 320B
TSCHotSwiperLiveCell.h 317B
TSCLevelInfo.h 314B
TSCHotBannerCell.h 312B
TSCCommonHandler.h 311B
TSCNearLiveCell.h 309B
TSCGiftViewController.h 308B
TSCHotGameCell.h 305B
TSCTicker.h 304B
TSCActInfo.h 303B
TSCLiveCellTableViewCell.h 302B
TSCHotViewController.h 297B
TSCSystemMsgCell.h 292B
TSCChatViewCell.h 290B
TSCTabBarViewController.h 285B
TSCHotLiveCell.h 285B
AppDelegate.h 282B
TSCBannerImageCell.h 279B
TSCGiftExtra.h 268B
TSCHotViewControllerNew.h 251B
TSCLaunchViewController.h 250B
TSCLoginViewController.h 249B
TSCFocusViewController.h 248B
NSString+CachePath.h 248B
TSCMainViewController.h 247B
TSCAdvertiseView.h 247B
TSCNearViewController.h 246B
TSCBaseNavViewController.h 244B
TSCMeViewController.h 243B
AppDelegate+TSCUMeung.h 235B
TSCBaseViewController.h 232B
TSCRefreshHeader.h 231B
MJExtensionConfig.h 226B
ViewController.h 218B
LFLivePreview.h 206B
MTUwMjQ0MjY4MTA0MyM0MTAjanBn.jpg 30KB
Contents.json 2KB
Contents.json 1KB
Contents.json 374B
Contents.json 374B
Contents.json 368B
Contents.json 366B
Contents.json 366B
Contents.json 366B
Contents.json 366B
Contents.json 364B
Contents.json 362B
Contents.json 362B
Contents.json 358B
Contents.json 356B
Contents.json 356B
Contents.json 356B
Contents.json 356B
Contents.json 356B
Contents.json 356B
共 376 条
- 1
- 2
- 3
- 4
资源评论
妄北y
- 粉丝: 9708
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JavaScript《基于自动分析数据并给出营业建议的餐厅管理系统(接入AI) 》+源代码+项目说明及资料
- 355670834783295707ad04e-427f-4cde-9589-e578224a8459.zip
- 动态sql解析引擎,类似mybatis动态sql的功能
- EDA365-Skill-V2.5安装包,支持Allegro17.x版本
- C# 常用单词汇总,常用单词汇总
- 【ERP标准流程-标准流程-库内业务管理】(DOC 14页).doc
- Python《数据库期末作业-餐厅点单系统 》+源代码+设计资料
- 学生成绩管理系统(C++课程设计
- 双指针法判断链表有环-go语言实现
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功