前言:

最近公司的项目中加入中直播这部分的功能,现在的直播平台真的很多很多,以前在朋友圈看到过这张图片,没办法一次性给大家看,就只能这样截成几张给大家看看。其实按照我自己的看法,现在的直播已经没办法做成一个主打的业务去做,能做成的只是你APP传播信息一个手段而已,把它当做一个工具去使用,而不是把它当做一个主打的业务去挣钱反而会好一点,这东西现在只能烧钱吧!当然这只是我自己的看法而已!说说正题网易SDK!

   

网易视频云提供直播推流端和播放器SDK,包括iOS/Android/PC/Web平台,可帮助网易视频云用户直接使用音视频采集、编码、推流,播放等功能,通过接口,快速和自身业务应用集合,实现音视频采集和业务逻辑的对接、整合。网易可以使用自己的邮箱登录开发者平台,这个就不 比多说了!顺便再提一句,网易的SDK要使用云直播,是有一个星期的试用期的。点播也是有一个星期的试用期的,额...一个星期也可以让你做很多事的!

iOS 直播推流 SDK 开发指南 大家看仔细了,这里的是推流的开发指南!也就是发起直播用的!

iOS 播放器 SDK 开发指南   这个是播放端的开发指南!

网易直播SDK的文档感觉写的是比较好的,具体的怎么集成大家看继承文档就是了,我们说说一些要注意的地方。我们先说发起直播的时候的一些注意事项吧。

推流端注意点:

一:在Demo中的这个方法是用来申请权限的:

//应用程序需要事先申请音视频使用权限
- (BOOL)requestMediaCapturerAccessWithCompletionHandler:(void (^)(BOOL, NSError*))handler { }

这个方法我的建议是你要进入开始直播界面之前去申请,不然你在这个界面申请的时候,你要是开启了相机预览功能,就是Demo中的下面这句代码开启的:

   //打开摄像头预览
[_mediaCapture startVideoPreview:self.localPreview];

开启预览功能就会有一个黑屏界面,你需要再次推出进入才能正常使用相机和麦克风,所以最上面说的权限的申请你最好下载进入这个界面之前。

二:在推流端有这样一个通知:

 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(onStartLiveStream:) name:LS_LiveStreaming_Started object:_mediaCapture];

当收到这个通知的时候才是真正开始直播的时候,不是说你进入之后,初始化直播就开始了,等真正收到这个通知才是开始直播了,还有就是只有等直播开始了你才能去关闭直播!这点主要是体现在后台的数据回调上。

三:记得要释放通知

-(void)dealloc
{
[[NSNotificationCenter defaultCenter]removeObserver:self name:LS_LiveStreaming_Finished object:_mediaCapture];
[[NSNotificationCenter defaultCenter]removeObserver:self name:LS_LiveStreaming_Started object:_mediaCapture];
[[NSNotificationCenter defaultCenter]removeObserver:self name:LS_LiveStreaming_SDK_dealloc object:_mediaCapture];
[[NSNotificationCenter defaultCenter]removeObserver:self name:LS_LiveStreaming_Bad object:_mediaCapture];
}

四:最后一点,别把推流地址搞错了:

推流地址也是rtmp开头的,不过推流的是rtmp://p ,不是拉流当中的 rtmp://v ,一个是P一个是V,使用的时候注意!

拉流时候的注意事项:

大家要是看网易的拉流地址的话是分了三种了,可能有些同学就迷糊了,不知道自己到底该用哪一个!下面的这一张图就可以帮大家解决这个烦恼:

然后大家再看看这个直播的延时情况,SDK播放的过程中是需要初始化的这个初始化也是需要时间的,大家心里有个底,一般也就这么长时间,时间太长会给用户造成不好的体验!

一:注意播放端和推流端SDK里面静态文件的冲突:

这里一提你就清楚了,网易的播放端和推流端的SDK集成里面有些个静态文件也就是.a文件是冲突的,在集成的时候一定要注意不要重复的拉入,而且这里还有一点,支付宝和网易的SDK静态文件也是有冲突的,我是删除了网易的和支付宝的冲突静态文件,是没有什么问题的!

二:一般的观看直播的界面是有观看的头像你可以去查看的,有些处理是在当前的控制器查看,有些可能会做处理跳转到其他的界面,要是跳转到其他的界面要是不是返回上个界面,而你还想继续播放或者观看的话你可以这样做,在网易的Demo中你可以看到这样的方法:

- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"viewDidDisappear"); [self.liveplayer shutdown]; //退出播放并释放相关资源
[self.liveplayer.view removeFromSuperview];
self.liveplayer = nil; [[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerDidPreparedToPlayNotification object:_liveplayer];
[[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerLoadStateChangedNotification object:_liveplayer];
[[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerPlaybackFinishedNotification object:_liveplayer];
[[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerFirstVideoDisplayedNotification object:_liveplayer];
[[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerFirstAudioDisplayedNotification object:_liveplayer];
[[NSNotificationCenter defaultCenter]removeObserver:self name:NELivePlayerVideoParseErrorNotification object:_liveplayer];
}

重点不是下面通知的释放,是上面那几句关于liveplayer的设置问题!你要是在 viewDidDisappear 设置的话就达不到我们的要求了,所以这个释放你可以加载导航的返回事件当中去,当然也不能写在viewWillDisappear。不然你下面的设置就不会起作用,按照Demo,你可以在ViewWillappear中写这两句代码来达到想要的效果:

 [self.liveplayer setShouldAutoplay:YES];     //设置prepareToPlay完成后是否自动播放
[self.liveplayer setPauseInBackground:NO]; //设置切入后台时的状态,暂停还是继续播放

网易云直播SDK使用总结的更多相关文章

  1. 直播推流端弱网优化策略 | 直播 SDK 性能优化实践

    弱网优化的场景 网络直播行业经过一年多的快速发展,衍生出了各种各样的玩法.最早的网络直播是主播坐在 PC 前,安装好专业的直播设备(如摄像头和麦克风),然后才能开始直播.后来随着手机性能的提升和直播技 ...

  2. 手游录屏直播技术详解 | 直播 SDK 性能优化实践

    在上期<直播推流端弱网优化策略 >中,我们介绍了直播推流端是如何优化的.本期,将介绍手游直播中录屏的实现方式. 直播经过一年左右的快速发展,衍生出越来越丰富的业务形式,也覆盖越来越广的应用 ...

  3. 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

    CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + ...

  4. 视频直播SDK-ios版

    IOS视频直播接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,6 ...

  5. 网易云免费OSS服务用做Markdown图床或博客图片外链

    我使用据说是Windows下最好用的Markdown编辑器“MarkdownPad2”(个人感觉还是Visual Code+Markdown插件666)写Markdown,在贴图方面遇到一个问题,于是 ...

  6. 实现一个网易云音乐的 BottomSheetDialog

    作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...

  7. TOP100summit2017:网易云通信与视频CTO赵加雨:外力推动下系统架构的4个变化趋势

      壹佰案例:很荣幸邀请到您成为第六届壹佰案例峰会架构专场的联席主席,您曾深度参与Cisco Jabber,Webex Meeting, Cisco Spark等多项分布式实时通信类产品的架构与研发, ...

  8. 网易云易盾朱星星:最容易被驳回的10大APP过检项

    本文由  网易云发布. 1月20日,“走进网易:移动测试与安全实践”公开活动在杭州西湖区颐高创业大厦4F楼友会创业咖啡厅举行.本次活动的议题聚焦在如何实现应用的高效开发.安全过检.开发功耗降到最低等热 ...

  9. 网易云易盾CTO朱浩齐:我们是如何用AI赋能内容安全?

    本文由  网易云发布. 5月19日,LiveVideoStack携手网易云易盾,共同打造了“娱乐多媒体开发应用实践”专题,帮助开发者和泛娱乐平台运营人员,提升技术能力,突破难点,拓展思路与视野. 在专 ...

随机推荐

  1. 【转】国外程序员收集整理的PHP资源大全

    ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等.伯乐在线对该资源列表进行了翻译, ...

  2. Android L(5.0)源码之手势识别OnTouchListener

    在Activity中,因为要监听触摸屏的触摸事件和手势时间,所以该Activity必须实现OnTouchListener和OnGestureListener两个接口,并重写其中的方法.本人根据andr ...

  3. iOS8 UISearchViewController搜索功能讲解 分类: ios技术 2015-07-14 10:23 76人阅读 评论(0) 收藏

    在iOS8以前我们实现搜索功能需要用到UISearchbar和UISearchDisplayController, 在iOS8之后呢, UISearchController配合UITableView的 ...

  4. iOS动画特效 分类: ios技术 2015-05-15 16:29 311人阅读 评论(0) 收藏

    关于图层的几个坐标系. 对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大.越往右,X值越大. 一个图层的frame,它是position,bounds,anchorPoint和tra ...

  5. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  6. 【转】进程间通信方式总结(windows 和linux)

    平时看的书很多,了解的也很多,但不喜欢总结,这不昨天面试的时候被问到了进程间通信的方式,因为没有认真总结过,所以昨天答得不是特别好.现在将linux和windows的进程间通信方式好好总结一下.    ...

  7. ajax 注册

    $(document).ready(function(e){ $("#uid").blur(function(){ var uid = $("#uid").va ...

  8. Tsinsen-A1489 抽奖 【数学期望】

    乔明达太神,其实已经题解非常清楚了,我再推一遍吧. 题目意思相当于有n个盒子,无差别投m次球,每个盒子的得分为每个盒子里的球的个数. 第一问: 假设这个球放在了第i个盒子里,那么 ∆ans = (mi ...

  9. cocos2d-x 跨平台usleep方法

    #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) #define usleep(t) Sleep(t) #else #include <unistd.h ...

  10. JQuery基础知识(2)

    JQuery基础知识(2) JQuery滑动效果 1. JQuery slideDown(); 语法: $(selector).slideDown(speed,callback); 可选的 speed ...