通过阅读本文,您可以了解iOS推流SDK的API及配置列表。

API

按照功能划分,API可以分为基础接口、音视频基础接口、推拉流基础接口等,各功能对应的API如下所示:

表 1. 基础接口
API 描述 所属类及说明
getSdkVersion 获取SDK的当前版本号。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
initWithConfig 设置AliLiveConfig推流初始化配置项。
destorySdk 销毁AliLiveEngine 对象,释放相关资源。
setStatusDelegate 设置直播推流状态回调,推流状态回调请参见AliLivePushInfoStatusDelegate
setNetworkDelegate 设置直播网络状态回调,推流网络状态回调请参见AliLiveNetworkDelegate
setRtsDelegate RTC推流模式下订阅某个粉丝媒体相关回调,详情请参见AliLiveRtsDelegate
setVidePreProcessDelegate 设置视频前处理回调。
setDataStatsDelegate 设置直播媒体参数回调。
setLogDirPath 设置SDK日志文件保存路径。如需调用,请在调用所有API之前先调用此接口,避免日志出现丢失,同时保证指定的目录已存在且可写入。
setLogLevel 设置日志输出级别。
表 2. 本地预览接口
API 描述 所属类及说明
startPreview:renderMode:mirrorMode 开启摄像头本地预览,可以指定本地渲染模式和镜像模式。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
startPreview 开启摄像头本地预览。renderMode默认为AliLiveRenderModeAuto,mirroeMode默认为AliLiveRenderMirrorModeOnlyFrontCameraPreviewEnabled。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。
stopPreview 停止摄像头本地预览,结束本地预览成功会触发onPreviewStoped回调。
表 3. 推流基础接口
API 描述 所属类及说明
startPushWithURL 开始推流。推流成功后会触发onLivePushStarted回调。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
stopPush 停止推流。停止推流成功后会触发onLivePushStoped回调。
pausePush 暂停摄像头采集并进入垫片推流状态(仅支持RTMP模式推流)。需要先调用startPushWithURL后才可以调用pausePush,否则调用顺序会出错。
resumePush 恢复摄像头采集并结束垫片推流状态(仅支持RTMP模式推流)。需要先调用pausePush后才可以调用resumePush,否则调用顺序会出错。
isPublishing 查询是否正在推流。
livePushURL 获取当前推流的地址。
表 4. 拉流基础接口
API 描述 所属类及说明
subscribeStream 订阅RTC方式连麦的成员视频流。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
unSubscribeStream 取消订阅RTC方式的连麦成员视频流。
renderRemoteStreamWithView:url:renderMode:mirrorMode 为连麦成员视频流渲染窗口。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。
renderRemoteStreamWithView:url 为连麦成员视频流渲染窗口。renderMode默认为AliLiveRenderModeAuto,mirrorMode默认为AliLiveRenderMirrorModeAllDisabled。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。
表 5. 美颜相关接口
API 描述 所属类及说明
getRaceBeautyManager 获取美颜管理类AliLiveRaceBeautyManager的对象。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
enableBeautyEffect 美颜开关。 AliLiveRaceBeautyManager:美颜功能控制类,即美颜类型,包含美白、磨皮。
setRaceBeautyParams:value 设置某个美颜的参数。
表 6. 音视频相关接口
API 描述 所属类及说明
isCameraOn 查询摄像头是否打开。 AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。
switchCamera 切换前后摄像头。
setDeviceOrientationMode 设置设备横竖屏方向,可以设置横竖屏推流模式。当接入层没有调用该方法时,默认开启自适应模式,即横屏方向推横屏流,竖屏方向推竖屏流。
setCameraZoom:flash 设置摄像头缩放倍数及是否开启闪光灯。
isCameraFocusPointSupported 查询摄像头是否支持手动对焦。
setCameraFocusPoint 设置摄像头手动聚焦点。
isCameraExposurePointSupported 查询摄像头是否支持设置曝光区域。
setCameraExposurePoint 设置摄像头曝光点。
isAudioOnly 查询是否是纯音频推流。
setMute 设置本地音频采集是否为静音帧。
enableSpeakerphone 设置音频输出为听筒或扬声器。
isEnableSpeakerphone 查询当前音频输出为听筒或扬声器。
setPlayoutVolume 设置播放音量。
setRecordingVolume 设置录音音量。
setAudioSessionOperationRestriction 设置SDK对AVAudioSession的控制权限。
enableEarBack 启用耳返。建议在插入耳机后开启耳返,否则可能会引入回声。
setEarBackVolume 设置耳返音量。
playBGM:publish:loop 播放背景音乐。
stopBGM 停止播放背景音乐。
pauseBGM 暂停播放背景音乐。
resumeBGM 恢复播放背景音乐。
setBGMVolume 设置背景音乐音量
getBGMDuration 获取背景音乐文件的总时长。单位:ms。
getBGMCurrentPosition 获取背景音乐播放进度。单位:ms。
setBGMPosition 设置背景音乐的播放位置。
setPicthValue 调整声音音调高低。
setReverbMode 设置混响模式。
setVoiceChangerMode 设置变声模式。
表 7. 回调接口
API 描述 所属类及说明
onSubscribe:result:url 订阅某一个URL后的状态回调。当调用subscribeStream后,推流引擎会回调此URL的订阅状态,在连麦场景下,一个URL唯一标示一个粉丝的流信息,订阅表示接受该粉丝的音视频流。 AliLiveRtsDelegate:此回调只适用于RTC推流,表示连麦方式下订阅粉丝流的状态回调,RTMP推流没有该回调信息。
onUnSubscribe:result:url 取消订阅某一个URL后的状态回调。当调用unSubscribeStream后,推流引擎会回调此URL的取消订阅状态,在连麦场景下,一个UID唯一标示一个粉丝的流信息,取消订阅表示不再接受该粉丝的音视频流。
onFirstPacketReceived:url 成功订阅某个URL后开始接收其媒体数据,当接收到第一个包后触发此回调,一般在此回调后开始调用渲染renderRemoteStreamWithView:url来展示视频流。
onFirstRemoteVideoFrameDrawn 订阅的第一帧视频帧显示时触发此消息。
onLiveTotalStats:stats RTC推流中实时数据回调(2秒回调一次)。 AliLiveDataStatsDelegate:统计直播推流媒体相关信息的回调。
onLiveLocalVideoStats:stats RTC推流中发送本地视频的统计信息(2秒回调一次)。
onLiveRemoteVideoStats:stats RTC推流中接收远端视频的统计信息(2秒回调一次)。
onNetworkStatusChange 网络状态变化回调,例如WiFi切换成4G,或网络中断等会触发此回调。 AliLiveNetworkDelegate:推流过程中网络状态变化相关回调,通知接入方当前推流引擎的网络状态。
onNetworkPoor 弱网回调,当网络变成弱网状态时会触发此回调。
onNetworkRecovery 网络状态恢复回调。
onReconnectStart 推流引擎开始重连回调。当网络非常不好的情况下可能会出现推流中断的情况,推流中断后会尝试开始重连,此时触发此回调。
onReconnectSuccess 推流引擎重连成功回调,继续开始推流。
onConnectionLost 推流中断回调,推流引擎中断推流。
onTexture:width:height:rotate 在OpenGL线程中回调,进行采集图像的二次处理,如美颜。 AliLiveVidePreProcessDelegate:视频前处理回调,可以用来自定义视频图像处理,如自定义美颜等。
onTextureDestoryed 在OpenGL线程中回调,可以在这里释放创建的OpenGL资源。
onVideoPixelBuffer 视频采集对象回调,进行采集图像的二次处理。
onPreviewStarted 开始预览回调。 AliLivePushInfoStatusDelegate:回调推流状态的相关回调,RTMP和RTC推流都使用这个回调获取推流状态。
onPreviewStoped 停止预览回调。
onFirstVideoFramePreviewed 渲染第一帧视频回调。
onLivePushStarted 推流成功回调,表示开始推流。
onLivePushStoped 推流停止回调,表示停止推流。
onLiveSdkError 如果AliLiveEngine出现Error,通过此回调通知App。
onBGMStateChanged 音频音效播放状态回调。

配置列表

AliLiveConfig:阿里云直播SDK配置RTMP和RTC推流初始化参数配置模块,创建直播引擎时需要将配置对象通过参数的形式传入,配置只能在推流开始前设置,推流开始后重新设置配置无效。

参数 类型 默认值 说明
cameraPosition AliLiveCameraPosition AliLiveCameraPositionFront 相机位置。
beautyOn BOOL true 是否开启美颜。
enablePureAudioPush BOOL false 是否开启纯音频推流。
autoFocus BOOL false 是否支持自动对焦。
videoProfile int AliLiveVideoProfile_540P 视频推流分辨率。
videoFPS int 20 视频帧率。
enableHighDefPreview BOOL false 是否开启高清预览。如果采集分辨率低于720P时,本地预览以720P的方式呈现,采集分辨率高于720P以实际分辨率预览。
enableVideoHWAcceleration BOOL true 视频硬编码。
enableVideoDecodeHWAcceleration BOOL true 视频硬解码。
enableAudioHWAcceleration BOOL false 音频软编码。
videoGopSize AliLivePushVideoEncodeGOP AliLivePushVideoEncodeGOP_2 视频编码GOP大小,单位:s。
pauseImage UIImage NULL RTMP推流模式下暂停推流,推送默认图片,目前支持png格式。
videoInitBitrate int 1000 视频编码初始编码码率,单位:Kbps。
videoTargetBitrate int 1500 视频编码目标编码码率,单位:Kbps。
videoMinBitrate int 600 视频编码最小编码码率,单位:Kbps。
audioChannel AliLivePushAudioChannel AliLivePushAudioChannel_1 音频声道数。
audioSampleRate AliLivePushAudioSampleRate AliLivePushAudioSampleRate44100 音频采样率。
audioEncoderProfile AliLiveAudioEncoderProfile AliLiveAudioEncoderProfile_AAC_LC 音频编码格式。
autoReconnectRetryCount int 5 推流自动重连次数。
autoReconnectRetryInterval int 1000 推流自动重连间隔,单位:ms。
accountID NSString NULL 连麦域名HTTPDNS解析账号ID(连麦场景下必须设置)。
extra NSString NULL 辅助字段,用户可以传入直播成员唯一标示,用于SDK问题的日志排查。

基础接口

  • getSdkVersion:获取SDK的当前版本号。
    + (NSString *)getSdkVersion;

    返回说明

    返回SDK版本号。

  • initWithConfig:设置AliLiveConfig推流初始化配置项。
    - (instancetype)initWithConfig:(AliLiveConfig*)config;

    参数说明

    参数 类型 说明
    config AliLiveConfig 直播推流配置。

    返回说明

    返回AliLiveEngine实例。

  • destorySdk:销毁AliLiveEngine 对象,释放相关资源。
    - (void)destorySdk;
  • setStatusDelegate:设置直播推流状态回调,推流状态回调请参见AliLivePushInfoStatusDelegate
    - (void) setStatusDelegate:(id<AliLivePushInfoStatusDelegate>)delegate;

    参数说明

    参数 类型 说明
    delegate AliLivePushInfoStatusDelegate 推流状态回调。
  • setNetworkDelegate:设置直播网络状态回调,推流网络状态回调请参见AliLiveNetworkDelegate
    - (void) setNetworkDelegate:(id<AliLiveNetworkDelegate>)delegate;

    参数说明

    参数 类型 说明
    delegate AliLiveNetworkDelegate 推流网络状态回调。
  • setRtsDelegate:RTC推流模式下订阅某个粉丝媒体相关回调,详情请参见AliLiveRtsDelegate
    - (void) setRtsDelegate:(id<AliLiveRtsDelegate>)delegate;

    参数说明

    参数 类型 说明
    delegate AliLiveRtsDelegate RTC回调。
  • setVidePreProcessDelegate:设置视频前处理回调。
    - (void)setVidePreProcessDelegate:(id<AliLiveVidePreProcessDelegate>)delegate;

    参数说明

    参数 类型 说明
    delegate AliLiveVidePreProcessDelegate 视频前处理回调。
  • setDataStatsDelegate:设置直播媒体参数回调。
    - (void) setDataStatsDelegate:(id<AliLiveDataStatsDelegate>)delegate;

    参数说明

    参数 类型 说明
    delegate AliLiveDataStatsDelegate 直播媒体参数回调。
  • setLogDirPath:设置SDK日志文件保存路径。如需调用,请在调用所有API之前先调用此接口,避免日志出现丢失,同时保证指定的目录已存在且可写入。
    - (int)setLogDirPath:(NSString *)logDirPath;

    参数说明

    参数 类型 说明
    logDirPath String SDK日志文件保存路径。
  • setLogLevel:设置日志输出级别。
    - (void)setLogLevel:(AliLiveLogLevel) level;

    参数说明

    参数 类型 说明
    level AliLiveLogLevel 日志级别。

本地预览接口

  • startPreview:renderMode:mirrorMode:开启摄像头本地预览,可以指定本地渲染模式和镜像模式。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。
    - (int)startPreview:(AliLiveRenderView *)previewView renderMode:(AliLiveRenderMode)rMode mirrorMode:(AliLiveRenderMirrorMode)mMode;

    参数说明

    参数 类型 说明
    previewView AliLiveRenderView 预览view。
    rMode AliLiveRenderMode 视频渲染方式。
    mMode AliLiveRenderMirrorMode 是否需要镜像。
  • startPreview:开启摄像头本地预览。renderMode默认为AliLiveRenderModeAuto,mirroeMode默认为AliLiveRenderMirrorModeOnlyFrontCameraPreviewEnabled。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。
    /**
     * @brief 启动摄像头预览
     * @param previewView 预览view
     * @return 0:success  非0:failure
    */
    - (int)startPreview:(AliLiveRenderView *)previewView;

    参数说明

    参数 类型 说明
    previewView AliLiveRenderView 预览view。
  • stopPreview:停止摄像头本地预览,结束本地预览成功会触发onPreviewStoped回调。
    - (int)stopPreview;

推流基础接口

  • startPushWithURL:开始推流。推流成功后会触发onLivePushStarted回调。
    - (void)startPushWithURL:(NSString *)pushURL;

    参数说明

    参数 类型 说明
    pushURL NSString 推流地址。可以通过地址头(rtmp://或artc://)区分是RTMP或RTC推流。
  • stopPush:停止推流。停止推流成功后会触发onLivePushStoped回调。
    - (void)stopPush;
  • pausePush:暂停摄像头采集并进入垫片推流状态。需要先调用startPushWithURL后才可以调用pausePush,否则调用顺序会出错。
    - (void)pausePush;
  • resumePush:恢复摄像头采集并结束垫片推流状态。需要先调用pausePush后才可以调用resumePush,否则调用顺序会出错。
    - (void)resumePush;
  • isPublishing:查询是否正在推流。
    - (BOOL)isPublishing;
  • livePushURL:获取当前推流的地址。
    @property (nonatomic, readonly) NSString *livePushURL;

拉流基础接口

  • subscribeStream:订阅RTC方式连麦的成员视频流。
    - (void)subscribeStream:(NSString *)url;

    参数说明

    参数 类型 说明
    url NSString 需要被订阅的连麦成员的唯一URL标示。
  • unSubscribeStream:取消订阅RTC方式的连麦成员视频流。
    /**
     * @brief 取消订阅RTC 方式的连麦成员媒体流
     * @param url 需要取消订阅的连麦成员的唯一url标示
     */
    - (void)unSubscribeStream:(NSString *)url;

    参数说明

    参数 类型 说明
    url NSString 需要取消订阅的连麦成员的唯一URL标示。
  • renderRemoteStreamWithView:url:renderMode:mirrorMode:为连麦成员视频流渲染窗口。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。
    - (void)renderRemoteStreamWithView:(AliLiveRenderView *)renderView url:(NSString *)url renderMode:(AliLiveRenderMode)rMode mirrorMode:(AliLiveRenderMirrorMode)mMode;

    参数说明

    参数 类型 说明
    renderView AliLiveRenderView 待渲染的view。
    url NSString 连麦成员的唯一标示。
    rMode AliLiveRenderMode 视频渲染方式。
    mMode AliLiveRenderMirrorMode 是否需要镜像。
  • renderRemoteStreamWithView:url:为连麦成员视频流渲染窗口。renderMode默认为AliLiveRenderModeAuto,mirrorMode默认为AliLiveRenderMirrorModeAllDisabled。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。
    - (void)renderRemoteStreamWithView:(AliLiveRenderView *)renderView url:(NSString *)url;

    参数说明

    参数 类型 说明
    renderView AliLiveRenderView 待渲染的view。
    url NSString 连麦成员的唯一标示。

美颜相关接口

  • getRaceBeautyManager:获取美颜管理类AliLiveRaceBeautyManager的对象。
    /**
     * @brief 设置美颜
     * @return 获取美颜管理对象
    */
    - (AliLiveRaceBeautyManager *)getRaceBeautyManager;

    返回说明

    返回美颜管理对象。

  • enableBeautyEffect:美颜开关。
    - (void)enableBeautyEffect:(BOOL)isOpen;

    参数说明

    参数 类型 说明
    isOpen BOOL 打开或关闭美颜。
  • setRaceBeautyParams:value:设置某个美颜的参数。
    - (void)setRaceBeautyParams:(AliLiveRaceBeautyParams) param value:(float) value;

    参数说明

    参数 类型 说明
    param AliLiveRaceBeautyParams 美颜参数。取值:
    • kAliLiveRaceBeautyParamsSkinBuffing:磨皮。
    • kAliLiveRaceBeautyParamsWhitening:美白。
    value float 美颜参数值。取值:0~1。

音视频相关接口

  • isCameraOn:查询摄像头是否打开。
    - (BOOL)isCameraOn;

    返回说明

    返回true表示摄像头已打开,false表示摄像头没有打开。

  • switchCamera:切换前后摄像头。
    - (int)switchCamera;
  • setDeviceOrientationMode:设置设备横竖屏方向,可以设置横竖屏推流模式。当接入层没有调用该方法时,默认开启自适应模式,即横屏方向推横屏流,竖屏方向推竖屏流。
    - (int)setDeviceOrientationMode:(AliLiveOrientationMode)mode;

    参数说明

    参数 类型 说明
    mode AliLiveOrientationMode 设备方向。
  • setCameraZoom:flash:设置摄像头缩放倍数及是否开启闪光灯。
    - (int)setCameraZoom:(float)zoom flash:(BOOL)flash;

    参数说明

    参数 类型 说明
    zoom float 缩放倍数。
    flash BOOL 是否允许闪光灯。
  • isCameraFocusPointSupported:查询摄像头是否支持手动对焦。
    - (BOOL)isCameraFocusPointSupported;

    返回说明

    返回true表示支持,false表示不支持。

  • setCameraFocusPoint:设置摄像头手动聚焦点。
    - (int)setCameraFocusPoint:(CGPoint)point;

    参数说明

    参数 类型 说明
    point CGPoint 聚焦点。
  • isCameraExposurePointSupported:查询摄像头是否支持设置曝光区域。
    - (BOOL)isCameraExposurePointSupported;

    返回说明

    返回true表示支持,false表示不支持。

  • setCameraExposurePoint:设置摄像头曝光点。
    - (int)setCameraExposurePoint:(CGPoint)point;

    参数说明

    参数 类型 说明
    point CGPoint 曝光点。
  • isAudioOnly:查询是否是纯音频推流。
    - (BOOL)isAudioOnly;

    返回说明

    返回true表示纯音频推流,false表示非纯音频推流。

  • setMute:设置本地音频采集是否为静音帧。
    - (int)setMute:(BOOL)mute;

    参数说明

    参数 类型 说明
    mute BOOL 是否为静音帧。取值:
    • true:表示本地音频采集静音帧。
    • false:表示恢复成正常帧。
  • enableSpeakerphone:设置音频输出为听筒或扬声器。
    - (int)enableSpeakerphone:(BOOL)enable;

    参数说明

    参数 类型 说明
    enable BOOL 音频输出为听筒或扬声器。取值:
    • true:表示扬声器模式。
    • false(默认值):表示听筒模式。
  • isEnableSpeakerphone:查询当前音频输出为听筒或扬声器。
    - (BOOL)isEnableSpeakerphone;

    返回说明

    返回true表示扬声器模式,false表示听筒模式。

  • setPlayoutVolume:设置播放音量。
    - (int)setRecordingVolume:(NSInteger)volume;

    参数说明

    参数 类型 说明
    volume NSInteger 播放音量。默认值为100。取值范围:
    • 0:静音。
    • [0,100):减小音量到某值。
    • (100,400]:增大音量到某值。
  • setRecordingVolume:设置录音音量。
    - (int)setRecordingVolume:(NSInteger)volume;

    参数说明

    参数 类型 说明
    volume NSInteger 录音音量。默认值为100。取值范围:
    • 0:静音。
    • [0,100):减小音量到某值。
    • (100,400]:增大音量到某值。
  • setAudioSessionOperationRestriction:设置SDK对AVAudioSession的控制权限。
    - (int)setAudioSessionOperationRestriction:(AliLiveAudioSessionOperationRestriction)restriction;

    参数说明

    参数 类型 说明
    restriction AliLiveAudioSessionOperationRestriction 设置AVAudioSession对应的权限。
  • enableEarBack:启用耳返。建议在插入耳机后开启耳返,否则可能会引入回声。
    - (int)enableEarBack:(BOOL)enable;

    参数说明

    参数 类型 说明
    enable BOOL 是否启用耳返。
  • setEarBackVolume:设置耳返音量。
    - (int)setEarBackVolume:(NSInteger)volume;

    参数说明

    参数 类型 说明
    volume NSInteger 设置耳返音量。
  • playBGM:publish:loop:播放背景音乐。
    - (int)playBGM:(NSString *)path publish:(BOOL)publish loop:(BOOL)loop;

    参数说明

    参数 类型 说明
    path NSString 本地音乐文件路径(仅支持mp3、wav格式音频,且不支持中文路径)。
    publish BOOL 是否推流。取值:
    • true:推流到远端。
    • false:仅本地试听,不推流到远端。
    loop BOOL 是否循环播放。取值:
    • true:循环。
    • false:不循环。
  • stopBGM:停止播放背景音乐。
    - (int)stopBGM;
  • pauseBGM:暂停播放背景音乐。
    - (int)pauseBGM;
  • resumeBGM:恢复播放背景音乐。
    - (int)resumeBGM;
  • setBGMVolume:设置背景音乐音量。
    - (int)setBGMVolume:(NSInteger)volume;

    参数说明

    参数 类型 说明
    volume NSInteger 背景音乐音量,默认值为50。取值:
    • 0:静音。
    • (0,100]:设置音量为某值。
  • getBGMDuration:获取背景音乐文件的总时长。单位:毫秒。
    - (int)getBGMDuration;
  • getBGMCurrentPosition:获取背景音乐播放进度。单位:毫秒。
    - (int)getBGMCurrentPosition;
  • setBGMPosition:设置音频文件的播放位置。
    - (int)setBGMPosition:(NSInteger)pos;

    参数说明

    参数 类型 说明
    posMs NSInteger 进度条位置。单位:毫秒。
  • setPicthValue:设置声音音调高低。
    - (int)setPicthValue:(float)pitch;

    参数说明

    参数 类型 说明
    pitch float 设置音调,默认值为1.0f,范围为[0.5, 2.0]。
  • setReverbMode:设置混响模式。
    - (int)setReverbMode:(AliLiveReverbMode)mode;

    参数说明

    参数 类型 说明
    mode AliLiveReverbMode 混响模式。取值:
    • AliLiveReverb_Off:关闭。
    • AliLiveReverb_Vocal_I:人声 I。
    • AliLiveReverb_Vocal_II:人声 II。
    • AliLiveReverb_Bathroom:澡堂。
    • AliLiveReverb_Small_Room_Bright:明亮小房间。
    • AliLiveReverb_Small_Room_Dark:黑暗小房间。
    • AliLiveReverb_Medium_Room:中等房间。
    • AliLiveReverb_Large_Room:大房间。
    • AliLiveReverb_Church_Hall:教堂走廊。
    • AliLiveReverb_Cathedral:大教堂。
  • setVoiceChangerMode:设置变声模式。
    - (int)setVoiceChangerMode:(AliLiveVoiceChangerMode)mode;

    参数说明

    参数 类型 说明
    mode AliLiveVoiceChangerMode 变声模式。取值:
    • AliLiveVoiceChanger_OFF:关闭。
    • AliLiveVoiceChanger_OLD_MAN:老人。
    • AliLiveVoiceChanger_BABYBOY:男孩。
    • AliLiveVoiceChanger_BABYGILR:女孩。
    • AliLiveVoiceChanger_ROBOT:机器人。
    • AliLiveVoiceChanger_DAIMO:大魔王。
    • AliLiveVoiceChanger_KTV:KTV。
    • AliLiveVoiceChanger_ECHO:回声。

回调接口

  • onSubscribe:result:url:订阅某一个URL后的状态回调。当调用subscribeStream后,推流引擎会回调此URL的订阅状态,在连麦场景下,一个URL唯一标示一个粉丝的流信息,订阅表示接受该粉丝的音视频流。
    - (void)onSubscribe:(AliLiveEngine *)publisher result:(AliLiveResult *)result url:(NSString *)url;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    result AliLiveResult 订阅状态,成功或者失败。
    url NSString 订阅成员的唯一标识。
  • onUnSubscribe:result:url:取消订阅某一个URL后的状态回调。当调用unSubscribeStream后,推流引擎会回调此URL的取消订阅状态,在连麦场景下,一个UID唯一标示一个粉丝的流信息,取消订阅表示不再接受该粉丝的音视频流。
    - (void)onUnSubscribe:(AliLiveEngine *)publisher result:(AliLiveResult *)result url:(NSString *)url;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    result AliLiveResult 订阅状态,成功或者失败。
    url NSString 订阅成员的唯一标识。
  • onFirstPacketReceived:url:成功订阅某个URL后开始接收其媒体数据,当接收到第一个包后触发此回调,一般在此回调后开始调用渲染renderRemoteStreamWithView:url来展示视频流。
    - (void)onFirstPacketReceived:(AliLiveEngine *)publisher url:(NSString *)url;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象
    url NSString 订阅成员的唯一标识。
  • onFirstRemoteVideoFrameDrawn:订阅的第一帧视频帧显示时触发此消息。
    - (void)onFirstRemoteVideoFrameDrawn:(AliLiveEngine *)publisher url:(NSString *)url;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    url NSString 订阅成员的唯一标识。
  • onLiveTotalStats:stats:RTC推流中实时数据回调(2秒回调一次)。
    - (void)onLiveTotalStats:(AliLiveEngine *)publisher stats:(AliLiveStats *)stats;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    stats AliLiveStats 实时数据。

    实时数据包含以下内容:

    参数 类型 说明
    sent_kbitrate long 总发送码率,单位:Kbps。(暂未支持)
    rcvd_kbitrate long 总接收码率,单位:Kbps。(暂未支持)
    sent_bytes long 总发送数据量,单位:Byte。(暂未支持)
    rcvd_bytes long 总接收数据,单位:Byte。(暂未支持)
    video_rcvd_kbitrate long 视频发送码率,单位:Kbps。(暂未支持)
    video_sent_kbitrate long 视频接收码率,单位:Kbps。(暂未支持)
    call_duration long 通话时长,单位:s。(暂未支持)
    cpu_usage float CPU使用量,单位:%。(暂未支持)
  • onLiveLocalVideoStats:stats:RTC推流中发送本地视频的统计信息(2秒回调一次)。
    /**
     * @brief 本地视频统计信息(2s触发一次)
     * @param localVideoStats 本地视频统计信息
     * @note SDK每两秒触发一次此统计信息回调
     */
    - (void)onLiveLocalVideoStats:(AliLiveEngine *)publisher stats:(AliLiveLocalVideoStats *)localVideoStats;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    localVideoStats AliLiveLocalVideoStats 本地视频统计信息。

    本地视频统计信息包含以下内容:

    参数 类型 说明
    track AliLiveVideoTrack 视频流track类型。(暂未支持)
    sent_bitrate int 发送码率。
    sent_fps int 发送帧率。
    encode_fps int 编码帧率。
  • onLiveRemoteVideoStats:stats:RTC推流中接收远端视频的统计信息(2秒回调一次)。
    /**
     * @brief 远端视频统计信息(2s触发一次)
     * @param remoteVideoStats 远端视频统计信息
     */
    - (void)onLiveRemoteVideoStats:(AliLiveEngine *)publisher stats:(AliLiveRemoteVideoStats *)remoteVideoStats;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    remoteVideoStats AliLiveRemoteVideoStats 远端视频统计信息。

    远端视频统计信息包含以下内容:

    参数 类型 说明
    userId NSString 远端用户UserID。
    track AliLiveVideoTrack 视频流track类型。
    width int 宽度。
    height int 高度。
    decode_fps int 解码帧率。
    render_fps int 渲染帧率。
    frozen_times int 卡顿次数。
  • onNetworkStatusChange:网络状态变化回调,例如WiFi切换成4G,或网络中断等会触发此回调。
    - (void)onNetworkStatusChange:(AliLiveEngine *)publisher status:(AliLiveNetworkStatus)netStatus;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    status AliLiveNetworkStatus 网络连接状态。取值:
    • 4G。
    • WiFi。
    • 无网络。
  • onNetworkPoor:弱网回调,当网络变成弱网状态时会触发此回调。
    - (void)onNetworkPoor:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onNetworkRecovery:网络状态恢复回调。
    - (void)onNetworkRecovery:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onReconnectStart:推流引擎开始重连回调。当网络非常不好的情况下可能会出现推流中断的情况,推流中断后会尝试开始重连,此时触发此回调。
    - (void)onReconnectStart:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onReconnectSuccess:推流引擎重连成功回调,继续开始推流。
    - (void)onReconnectSuccess:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onConnectionLost:推流中断回调,推流引擎中断推流。
    - (void)onConnectionLost:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onTexture:width:height:rotate:在OpenGL线程中回调,进行采集图像的二次处理,如美颜。
    - (int)onTexture:(int)texture width:(int)width height:(int)height rotate:(int)rotate;

    参数说明

    参数 类型 说明
    texture int 纹理ID。
    width int 纹理宽度。
    height int 纹理高度。
    rotate int 纹理角度。
  • onTextureDestoryed:在OpenGL线程中回调,可以在这里释放创建的OpenGL资源。
    - (void)onTextureDestoryed;
  • onVideoPixelBuffer:视频采集对象回调,进行采集图像的二次处理。
    - (CVPixelBufferRef)onVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer;

    参数说明

    参数 类型 说明
    pixelBuffer CVPixelBufferRef 采集图像。
  • onPreviewStarted:开始预览回调。
    - (void)onPreviewStarted:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onPreviewStoped:停止预览回调。
    - (void)onPreviewStoped:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onFirstVideoFramePreviewed:渲染第一帧视频回调。
    - (void)onFirstVideoFramePreviewed:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onLivePushStarted:推流成功回调,表示开始推流。
    - (void)onLivePushStarted:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onLivePushStoped:推流停止回调,表示停止推流。
    - (void)onLivePushStoped:(AliLiveEngine *)publisher;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
  • onLiveSdkError:如果AliLiveEngine出现Error,通过此回调通知App。
    - (void)onLiveSdkError:(AliLiveEngine *)publisher error:(AliLiveError *)error;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    error AliLiveError 错误信息。
  • onBGMStateChanged:音频音效播放状态回调。
    - (void)onBGMStateChanged:(AliLiveEngine *)publisher
                    playState:(AliLiveAudioPlayingStateCode)playState
                    errorCode:(AliLiveAudioPlayingErrorCode)errorCode;

    参数说明

    参数 类型 说明
    publisher AliLiveEngine 推流实例对象。
    playState AliLiveAudioPlayingStateCode 播放状态。取值:
    • AliLiveAudioPlayingStarted:开始播放。
    • AliLiveAudioPlayingStopped:停止播放。
    • AliLiveAudioPlayingPaused:播放暂停。
    • AliLiveAudioPlayingResumed:播放恢复。
    • AliLiveAudioPlayingEnded:播放完毕。
    • AliLiveAudioPlayingBuffering:正在缓冲。
    • AliLiveAudioPlayingBufferingEnd:缓冲结束。
    • AliLiveAudioPlayingFailed:播放失败。
    errorCode AliLiveAudioPlayingErrorCode 播放状态对应的错误码。