human: 如何处理七牛云的直播云快速开始

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >iOS 推流端 SDK >快速开始

#  快速开始

最近更新时间: 2018-01-18 13:08:15

# 1 开发环境配置

  * Xcode 开发工具。App Store [下载地址](https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12)
  * 安装 CocoaPods。了解 CocoaPods 使用方法。[官方网站](https://cocoapods.org)

# 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](https://pili.qiniu.com)
  * 登录 `streamJson` 中使用的 hub
  * 查看 `stream` 属性
  * 点击属性中的播放 URL 后的箭头，即可查看内容。

# 8 DEMO下载

  * [点击下载](https://github.com/pili-engineering/PLMediaStreamingKit/tree/master/Example)

以上内容是否对您有帮助？