SDK升级说明

如果您现在使用的是V4.0.2版本的iOS端直播推流SDK,想要升级到V4.1.0及以上版本时,可参考本文步骤进行升级。

前提条件

请下载最新版本的直播推流SDK。

新版直播推流SDK,请参见SDK下载

升级步骤

从项目中移除SDK V4.0.2相关类库和资源文件,添加V4.1.0及以上版本相关类库和资源文件,排查并更新相关API和推流主流程接口。

  1. 在工程libs目录下:用V4.1.0及以上版本中需要加入AlivcLivePusher.framework和AlivcLibRtmp.framework替换V4.0.2项目中的AliLivesdk.framework。

  2. 播放器相关SDK需要升级到AliyunPlayer,请参考SDK及Demo中使用的SDK。

  3. 如果接入Queen智能美化特效,请在Demo中查看使用方式,方便美颜SDK及UI的接入。

  4. 相关API会有部分调整,请根据下文核心接口比对排查并更新当前代码中的API。

  5. 推流主流程接口有部分变更,请根据下文推流主流程接口变更修改当前代码。

核心接口对比

  • 基础接口

    V4.0.2

    V4.1.0及以上版本

    描述

    getSdkVersion

    getSdkVersion

    获取版本号。

    initWithConfig

    initWithConfig

    创建推流实例。

    destorySdk

    destroy

    销毁推流。

    • setStatusDelegate

    • setRtsDelegate

    • setVidePreProcessDelegate

    • setDataStatsDelegate

    • AlivcPublisherViewDelegate

    • AlivcLivePusherInfoDelegate

    • AlivcLivePusherErrorDelegate

    RTC推流模式下订阅某个粉丝媒体相关回调,详情请参见AliLiveRtsDelegate设置视频前处理回调。设置直播媒体参数回调。

    setNetworkDelegate

    AlivcLivePusherNetworkDelegate

    设置推流网络状态相关回调。

    setLogDirPath

    无:自定义Log写入

    设置SDK日志文件保存路径。如需调用,请在调用所有API之前先调用此接口,避免日志出现丢失,同时保证指定的目录已存在且可写入。

    setLogLevel

    设置日志输出级别。

  • 推流基础接口

    V4.0.2

    V4.1.0及以上版本

    描述

    startPreview

    startPreview

    开始预览(主播端接口)。

    stopPreview

    stopPreview

    停止预览(主播端接口)。

    pausePush

    pause

    暂停摄像头采集并进入垫片推流状态(仅支持RTMP模式推流)。需要先调用startPush后才可以调用pausePush,否则调用顺序会出错。

    resumePush

    resume()

    恢复摄像头采集并结束垫片推流状态(仅支持RTMP模式推流)。需要先调用pausePush后才可以调用resumePush,否则调用顺序会出错。

    startPush

    startPushWithURL

    开始推流。

    stopPush

    stopPush

    停止推流。

    isPublishing

    isPushing

    查询是否正在推流。

    getPublishUrl

    getPushURL

    获取当前推流的地址。

  • 视频相关接口

    V4.0.2

    V4.1.0及以上版本

    描述

    setPreviewMode

    setpreviewDisplayMode

    设置预览模式。

    switchCamera

    switchCamera

    切换前后摄像头。

    setCameraZoom

    setZoom

    设置摄像头缩放及是否允许闪光灯。

    isCameraExposurePointSupported

    setExposure

    摄像头是否支持设置曝光区域。

    setCameraFocusPoint

    setAutoFocus

    设置摄像头聚焦。

  • 音频相关接口

    V4.0.2

    V4.1.0及以上版本

    描述

    setMute

    setMute

    设置本地音频采集是否为静音帧。

    isAudioOnly

    isAudioOnly

    查询是否纯音频推流。

    enableEarBack

    setBGMEarsBack

    启用耳返。建议在插入耳机后开启耳返,否则可能会引入回声。

    playBGM

    startBGMAsync

    播放背景音乐。

    stopBGM

    stopBGM

    停止播放背景音乐。

    pauseBGM

    pauseBGM

    暂停播放背景音乐。

    resumeBGM

    resumeBGM

    恢复播放背景音乐。

    setBGMVolume

    setBGMVolume

    设置背景音乐音量。

推流主流程接口变更

  1. 创建Engine。

    创建AliLiveEngine(V4.0.2)

    V4.1.0及以上版本改为:创建AlivcLivePusher

    //创建RTMP相关配置对象
    头文件引用。#import <AliLiveSdk/AliLiveSdk.h>
    创建AliLiveEngine。AliLiveConfig *config = [[AliLiveConfig alloc] init];
    config.videoProfile = AliLiveVideoProfile_540P;
    config.videoFPS = 20;
    myConfig.pauseImage = [UIImage imageNamed:@"background_img.png"];
    myConfig.accountID = @"";
    AliLiveEngine *engine = [[AliLiveEngine alloc] initWithConfig:myConfig];
    [engine setAudioSessionOperationRestriction:AliLiveAudioSessionOperationRestrictionDeactivateSession];
    [engine setRtsDelegate:self];
    [engine setStatusDelegate:self];

    在需要使用推流器的ViewController中引用头文件#import <AlivcLivePusher/AlivcLivePusherHeader.h>,示例代码如下:

    //初始化推流配置类,也可使用initWithResolution来初始化
    AlivcLivePushConfig *config = [[AlivcLivePushConfig alloc] init];
    //默认为540P,最大支持720P
    config.resolution = AlivcLivePushResolution540P;
    //建议用户使用20fps
    config.fps = AlivcLivePushFPS20;
    // 打开码率自适应,默认为true
    config.enableAutoBitrate = true;
    //默认值为2,关键帧间隔越大,延时越高。建议设置为1-2
    config.videoEncodeGop = AlivcLivePushVideoEncodeGOP_2;
    // 单位为毫秒,重连时长2s,重连间隔设置不小于1秒,建议使用默认值即可
    config.connectRetryInterval = 2000;
    // 默认为false,正常情况下都选择false即可
    config.previewMirror = false;
    // 默认为竖屏,可设置home键向左或向右横屏
    config.orientation = AlivcLivePushOrientationPortrait;
  2. 创建预览。

    V4.0.2

    V4.1.0及以上版本

    开始预览。[self.engine startPreview:self.renderView];

    推流预览显示支持以下三种模式:

    这三种模式可以在AlivcLivePushConfig中设置,也可以在预览中和推流中通过API setpreviewDisplayMode 进行动态设置。

    [self.livePusher startPreview:self.view];
  3. 开始推流。

    V4.0.2

    V4.1.0及以上版本

    [self.engine startPushWithURL:self.pushUrl];
    [self.livePusher startPushWithURL:@"推流测试地址(rtmp://......)"];
  4. 停止推流。

    V4.0.2

    V4.1.0及以上版本

    [self.engine stopPush];
    [self.engine stopPreview];
    [self.engine destorySdk];
    self.engine = nil;
    [self.livePusher destory];
    self.livePusher = nil;
    /*获取推流状态。*/
    AlivcLivePushStatus status = [self.livePusher getLiveStatus];