直播云

  • 快速开始

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

    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下载

    以上内容是否对您有帮助?
  • Close