PLRecorderKit 是为 pili.io 流媒体云服务提供的一套推送直播流 SDK, 旨在解决 iOS 端快速、轻松实现 iOS 设备利用摄像头直播接入,便于 pili.io 的开发者专注于产品业务本身,而不必在技术细节上花费不必要的时间。
先来看看 PLRecroderKit 接入的步骤
- 下载 PLRecorderKit 的 release zip 文件;
- 解压后得到 libPLRecorderKit.a 和 其 include 头文件;
- 将 libPLRecorderKit.a 和 include 头文件选中并拖拽到自己的 Xcode 工程中;
- 添加依赖库:
- AVFoundation.framework
- AudioToolbox.framework
- CFNetwork.framework
- CoreGraphics.framework
- CoreMedia.framework
- Foundation.framework
- OpenGLES.framework
- VideoToolbox.framewrok
- 添加 search path
- 在工程的 Build Settings / Header Search Paths 下添加 include 目录的相对路径
- 编译并开始你的工作吧
- 添加 PLRecorderKit 为你的项目 submodule
git submodule add https://github.com/pili-io/pili-ios-camera-recorder.git /Vendor/pili-ios-camera-recorder.git
- 添加 PLRecorderKit.xcodeproj 为你的 iOS 工程的子工程
- 在 Build Phases / Target Dependecies 中添加 PLRecorderKit-Universal
- 在 Build Phases / Link Binary With Libraries 中添加以下依赖库
- libPLRecorderKit.a
- AVFoundation.framework
- AudioToolbox.framework
- CFNetwork.framework
- CoreGraphics.framework
- CoreMedia.framework
- Foundation.framework
- OpenGLES.framework
- VideoToolbox.framewrok
- 编译并开始你的工作吧
在需要的地方添加
#import <PLRecorderKit/PLRecorderKit.h>
PLCaptureManager 是核心类,你只需要关注并使用这个类就可以完成通过摄像头推流、预览的工作
推流前务必要先检查摄像头授权,并记得设置预览界面
// 检查摄像头是否有授权
PLCaptureDeviceAuthorizedStatus status = [PLCaptureManager captureDeviceAuthorizedStatus];
if (PLCaptureDeviceAuthorizedStatusUnknow == status) {
[PLCaptureManager requestCaptureDeviceAccessWithCompletionHandler:^(BOOL granted) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[PLCaptureManager sharedManager].previewView = self.previewView;
});
}
}];
} else if (PLCaptureDeviceAuthorizedStatusGranted == status) {
[PLCaptureManager sharedManager].previewView = self.previewView;
} else {
// 处理未授权的情况
}
设置推流地址,这里的推流地址应该是你自己的服务端通过 pili.io 请求到的
// 设置推流地址
[PLCaptureManager sharedManager].rtmpPushURL = [NSURL URLWithString:@"YOUR_RTMP_PUSH_URL_HERE"];
推流操作
// 开始推流
[[PLCaptureManager sharedManager] connect];
// 停止推流
[[PLCaptureManager sharedManager] disconnect];
- iOS Target : >= iOS 7
- 1.0.0
- 完成基本的推流、预览功能