快速开始
1 开发环境配置
2 导入 SDK
2.1 使用 CocoaPods 导入
推荐使用 CocoaPods 的方式导入,步骤如下:
- 在工作目录中创建名称为 Podfile 的文件
- 在 Podfile 中添加如下一行
pod 'PLMediaStreamingKit'
- 在终端中运行
$ pod install
到此,你已完成了 PLMediaStreamingKit 的添加。
此外,如果你希望将 PLMediaStreamingKit 从旧版本升级到新版本,可以在终端中运行
$ pod update
2.2 手动导入
我们建议使用 CocoaPods 导入,如果由于特殊原因需要手动导入,可以按照如下步骤进行:
- 将 Pod/Library 目录下的 PLMediaStreamingKit.framework 和 HappyDNS.framework 加入到工程中;
- 在对应的 Target 的 Embedded Binaries 设置中加入 PLMediaStreamingKit.framework 和 HappyDNS.framework;
- 在工程对应 TARGET 中,右侧 Tab 选择 "Build Phases",在 "Link Binary With Libraries" 中加入 UIKit、AVFoundation、CoreGraphics、CFNetwork、CoreMedia、AudioToolbox 这些 framework,并加入 libc++.tdb、libz.tdb 及 libresolv.tbd;
- 在工程对应 TARGET 中,右侧 Tab 选择 "Build Settings",在 "Other Linker Flags" 中加入 "-ObjC" 选项;
3 初始化推流逻辑
3.1 添加引用并初始化 SDK 使用环境
在 AppDelegate.m
中添加引用
#import <PLMediaStreamingKit/PLMediaStreamingKit.h>
并在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中添加如下代码:
[PLStreamingEnv initEnv];
然后在 ViewController.m
中添加引用
#import <PLMediaStreamingKit/PLMediaStreamingKit.h>
3.2 添加 session 属性
添加 session 属性在 ViewController.m
@property (nonatomic, strong) PLMediaStreamingSession *session;
4 创建流对象
4.1 创建视频和音频的采集和编码配置对象
当前使用默认配置,之后可以深入研究按照自己的需求作更改
PLVideoCaptureConfiguration *videoCaptureConfiguration = [PLVideoCaptureConfiguration defaultConfiguration];
PLAudioCaptureConfiguration *audioCaptureConfiguration = [PLAudioCaptureConfiguration defaultConfiguration];
PLVideoStreamingConfiguration *videoStreamingConfiguration = [PLVideoStreamingConfiguration defaultConfiguration];
PLAudioStreamingConfiguration *audioStreamingConfiguration = [PLAudioStreamingConfiguration defaultConfiguration];
4.2 创建推流 session 对象
self.session = [[PLMediaStreamingSession alloc] initWithVideoCaptureConfiguration:videoCaptureConfiguration audioCaptureConfiguration:audioCaptureConfiguration videoStreamingConfiguration:videoStreamingConfiguration audioStreamingConfiguration:audioStreamingConfiguration stream:nil];
5 预览摄像头拍摄效果
将预览视图添加为当前视图的子视图
[self.view addSubview:self.session.previewView];
6 添加推流操作
取一个最简单的场景,就是点击一个按钮,然后触发发起直播的操作。
6.1 添加触发按钮
我们在 view
上添加一个按钮吧。
我们在 - (void)viewDidLoad
方法最后添加如下代码
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"start" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, 100, 44);
button.center = CGPointMake(CGRectGetMidX([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds) - 80);
[button addTarget:self action:@selector(actionButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
6.2 创建推流地址
在实际开发过程中,为了您的 App 有更好的用户体验,建议提前从服务器端获取推流地址
NSURL *pushURL = [NSURL URLWithString:@"your push url"];
6.3 实现按钮动作
- (void)actionButtonPressed:(id)sender {
[self.session startStreamingWithPushURL:pushURL feedback:^(PLStreamStartStateFeedback feedback) {
if (feedback == PLStreamStartStateSuccess) {
NSLog(@"Streaming started.");
}
else {
NSLog(@"Oops.");
}
}];
}
6.4 完成首次推流操作
Done,没有额外的代码了,现在可以开始一次推流了。
如果运行后,点击按钮提示 Oops.
,就要检查一下你之前创建 PLStream
对象时填写的 StreamJson
是否有漏填或者填错的内容。
7 查看推流内容
7.1 登录 pili.qiniu.com 查看内容
- 登录 pili.qiniu.com
- 登录
streamJson
中使用的 hub - 查看
stream
属性 - 点击属性中的播放 URL 后的箭头,即可查看内容。
8 DEMO下载
文档反馈
(如有产品使用问题,请 提交工单)