摘要:本文将带你了解IOS开发入门ReplayKit库,iOS原生直播神器,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门ReplayKit库,iOS原生直播神器,希望本文对大家学IOS有所帮助。
前言
ReplayKit 是WWDC15推出的苹果原生录屏 API。在iOS9的时候主要提供的是录屏,录制完成后可以进行查看、编辑、通过指定方式分享出去。
在WWDC16上新版的 ReplayKit 提出了了 live 功能,简单说就是通过 ReplayKit 可以进行录屏直播。这对于苹果的手游直播行业有着很重要的意义。
首先给出视频地址和API文档
Go Live with ReplayKit - WWDC 2016 ReplayKit API Reference
简单测试
弹出可以接收广播的服务列表
新建工程,然后加入ReplayKit.frameword
添加一个按钮,然后按钮点击事件弹出广播服务的列表:
- (IBAction)displayServiceViewController:(id)sender {
[RPBroadcastActivityViewController loadBroadcastActivityViewControllerWithHandler:^(RPBroadcastActivityViewController * _Nullable broadcastActivityViewController, NSError * _Nullable error) {
broadcastActivityViewController.delegate = self;
[self presentViewController:broadcastActivityViewController animated:YES completion:nil];
}];
}
<喎?"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="mobcrush">Mobcrush
所以想要直播的游戏本身添加这样一个逻辑,弹出服务列表即可。而直播软件也只需要注册为直播服务,就可以直播任何支持的游戏,软件。国外最火最先支持的就是示例中左边的Mobcrush,官网,里面有手机游戏Tower Dash的直播,就是使用这个技术实现的,Tower Dash游戏直播页面为 - 这里这里,需要科学上网。
我录制了动态图展示:
动态图中可以看出支持摄像头录制,当然还有麦克风,这些已经满足了日常主播的基本需求。
国内
国内现在映客直播安装就直接有注册为广播服务,所以截图中列表里就有。我还安装了熊猫TV,虎牙直播,虎牙助手,虎牙手游。熊猫TV的主播权限还没有申请下来。虎牙手游貌似使用的也是这个技术,但是实现不一样,虎牙手游直接是在虎牙手游APP内部打开直播,提示成功之后,直接就进入了录屏模式,然后退出返回到手游界面开始游戏就可以。查看了虎牙直播平台,已经有主播使用了iPhone7进行王者荣耀直播,熊猫TV暂时还没有看到用iPhone直播手游的。
WWDC 2016
下面是观看WWDC16 记录的知识片段。
ReplayKit
新特性:
Apple TV support Live Broadcasting 直播广播,这个很有用,就是要研究的直播功能 可以记录 Face Time摄像头的内容,增强了麦克风记录API
录播功能
对于录播功能之前就已经有了一个典型的demo,可以直接看下面代码,放进原始功能的第一个viewcontroller里面就Ok了。
#import "ViewController.h"
#import <replaykit replaykit.h="">
static NSString *StartRecord = @"开始";
static NSString *StopRecord = @"结束";
#if TARGET_IPHONE_SIMULATOR
#define SIMULATOR 1
#elif TARGET_OS_IPHONE
#define SIMULATOR 0
#endif
#define AnimationDuration (0.3)
@interface ViewController () <rppreviewviewcontrollerdelegate>
{
}
@property (nonatomic, strong)UIButton *btnStart;
@property (nonatomic, strong)UIButton *btnStop;
@property (nonatomic, strong)NSTimer *progressTimer;
@property (nonatomic, strong)UIProgressView *progressView;
@property (nonatomic, strong)UIActivityIndicatorView *activity;
@property (nonatomic, strong)UIView *tipView;
@property (nonatomic, strong)UILabel *lbTip;
@property (nonatomic, strong)UILabel *lbTime;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidAppear:(BOOL)animated {
BOOL isVersionOk = [self isSystemVersionOk];
if (!isVersionOk) {
NSLog(@"系统版本需要是iOS9.0及以上才支持ReplayKit");
return;
}
if (SIMULATOR) {
[self showSimulatorWarning];
return;
}
UILabel *lb = nil;
CGSize screenSize = [UIScreen mainScreen].bounds.size;
//标题
lb = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, <code class="java value"
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号