iOS CollectioniOS小记项目以及封装

iOS - 直播初探,仿全民TV

2016-11-27  本文已影响9680人  态度哥

因为公司业务的原因,一直没有搞过关于视频的东西,最近我经常看直播里面各路大神直播,就想自己模仿一个.经过搜索和总结自己写的demo算是快完了.先把写完的贴出来,项目还会继续完善. (我公司经过一年的快速发展,由去年的六名移动端开发人员,迅速变成两个,我自己成selfManager已经快半年了 ~ (今年冬天格外冷 ~ ))

这个项目断断续续写的,最近加班加的厉害,成为selfManager是挺苦逼的一件事情,毕竟所有的功能需求都要自己来完成,下周还是得继续苦逼 ~
这里主要记录下这次的过程,如果有幸看到这篇,并能帮到你的话,记得给个星,毕竟这是我第一次传代码...😜

Demo地址

先来看下几张效果图:

四个主界面 其它直播页面 有颜直播页面 栏目 直播 这是架构
这个是前段时间模仿另外一个项目用的,出自哪个简书我忘记了,作者如果看到我立刻加上。
简单说下:
General :通用类
Helpers :工具类
Macro :宏定义类
Sections: 各个模块
Vendors: 第三方

首页

滑动视图使用的是TYPagerController框架:使用起来很简单

//MARK: - 添加视图
- (void)addPagerController
{
    TYTabButtonPagerController *pagerController = [[TYTabButtonPagerController alloc]init];
    pagerController.adjustStatusBarHeight = YES;
    pagerController.dataSource  = self;
    pagerController.barStyle    = TYPagerBarStyleCoverView;
    pagerController.cellSpacing = 8;
    
    pagerController.view.frame = self.view.bounds;
    [self addChildViewController:pagerController];
    [self.view addSubview:pagerController.view];
    _pagerController = pagerController;
}```
里面的视图都是使用**UICollectionview**
这几个频道也都是用的**UICollectionview**,具体可以看下代码 ~
#####以后需要加的功能:
1. banner无限滑动
2. cell中房间号,名称,圆角

#栏目
#直播
这俩频道都很简单,都是使用的**UICollectionview**,毕竟很多页面都长的一样,
列表都是用的**SkyOtherViewController**类
颜值直播类**SkyLoveLiveViewController** (有颜很重要啊 ~ )
其它直播**SkyLiveViewController**
#我
这个页面看代码吧 ~ 

![](http:https://img.haomeiwen.com/i1503437/1b385caed49b9be8.gif?imageMogr2/auto-orient/strip)



#直播
直播有俩类:
颜值直播类**SkyLoveLiveViewController** 
其它直播**SkyLiveViewController**

1.颜值直播**SkyLoveLiveViewController** 

![](http:https://img.haomeiwen.com/i1503437/c9055fac561d5b35.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

   主要有
  * 视频播放:**IJKFFMoviePlayerController**
  * 浮层:**SkyLoveLiveLayerView**
浮层类里面简单的实现了
**点赞的粒子动画效果**:代码是直接拿来用的,简单的看了一下,以后有空具体再写几个demo深入研究下.
**im聊天界面**:是把tableview到了过来,然后一秒插入一条数据,插入到第0行,具体看下代码.
**SkyLoveLiveLayerBottomTool**:底部四个按钮的类.简单的布局了一下.
**可滑动**:浮层类添加了一个滑动手势,实现了左右滑动.又在他的父视图上添加了一个滑动手势,简单模仿了一下颜值直播页面,浮层视图可以滑动的效果... 

2.其它直播**SkyLiveViewController**

![](http:https://img.haomeiwen.com/i1503437/fae5d4c7c8d6b446.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这个页面我只写了一个播放器和使用**TYPagerController**框架添加了滑动视图.支持旋转全屏.


#总结:
这次我第一次写视频的demo,很多地方写的也不好,功能都是简单的实现了一下,不过我感觉总体思路应该偏差不大,播放使用的是**IJKMediaFramework.framework**.遇到一个问题,我还没有改好,就是缓冲视频的时候,有的时候会很慢,要等待十几秒之后才能播放.有的时候会很快 ~ 

卡在这里~
ijkmp_stop()
ijkmp_stop()=0
ijkmp_shutdown_l()
ijkmp_shutdown_l()=void
ijkmp_dec_ref(): ref=0
ijkmp_shutdown_l()
ijkmp_shutdown_l()=void
aout_close_audio()
2016-11-27 17:34:56.851 QuanMinTV_iPhone[2792:1107753] self.columnListData.count = 27
ijkmp_set_inject_opaque(0x7ff138c00a90)
ijkmp_set_inject_opaque()=void
2016-11-27 17:39:09.966 QuanMinTV_iPhone[2792:1107753] OK setup GL
ijkmp_ios_set_view(glView=0x7ff138cb6330)
ijkmp_ios_set_view(glView=0x7ff138cb6330)=void
2016-11-27 17:39:09.968 QuanMinTV_iPhone[2792:1107753] invalidateRenderBuffer
2016-11-27 17:39:09.968 QuanMinTV_iPhone[2792:1191323] IJKSDLGLView: setupDisplay not ready
ijkmp_set_data_source(url="http://hls.quanmin.tv/live/7554955/playlist.m3u8")
ijkmp_set_data_source(url="http://hls.quanmin.tv/live/7554955/playlist.m3u8")=0
ijkmp_prepare_async()
ijkmp_prepare_async()=0
2016-11-27 17:39:09.980 QuanMinTV_iPhone[2792:1107753] invalidateRenderBuffer
2016-11-27 17:39:09.980 QuanMinTV_iPhone[2792:1191323] IJKSDLGLView: setupDisplay not ready
2016-11-27 17:39:09.983 QuanMinTV_iPhone[2792:1107753] invalidateRenderBuffer
2016-11-27 17:39:09.984 QuanMinTV_iPhone[2792:1191323] IJKSDLGLView: setupDisplay not ready

IJKSDLGLView: setupDisplay not ready

[github回答1](https://github.com/Bilibili/ijkplayer/issues/2225)
[github回答2](https://github.com/Bilibili/ijkplayer/issues/1761)
以上俩地址是 **ijkplayer** github上对此问题的回复,但我还是没有改好( ˇˍˇ ),希望遇到过的人可以指点一二,不胜感激 ~ 

#[下载地址](https://github.com/weidongfei/QuanminTv_iPhone)

如果对你有帮助,给个Star.😜

#最后一句: 侵立删 ~


#相关:
[iOS视频直播初窥:高仿<喵播APP>](http://www.jianshu.com/p/b8db6c142aad)
[如何快速的开发一个完整的iOS直播app (原理篇)](http://www.jianshu.com/p/bd42bacbe4cc)
[如何快速的开发一个完整的iOS直播app (播放篇)](http://www.jianshu.com/p/7b2f1df74420)
[如何快速的开发一个完整的iOS直播app (采集篇)](http://www.jianshu.com/p/c71bfda055fa)
[如何快速的开发一个完整的iOS直播app (美颜篇)](http://www.jianshu.com/p/4646894245ba)
[如何快速的开发一个完整的iOS直播app (推流篇)](http://www.jianshu.com/p/53059be61546)

感谢大神们 ~
上一篇下一篇

猜你喜欢

热点阅读