通过阅读本文,您可以了解iOS推流SDK的API及配置列表。
API
按照功能划分,API可以分为基础接口、音视频基础接口、推拉流基础接口等,各功能对应的API如下所示:
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 | 设置日志输出级别。 |
API | 描述 | 所属类及说明 |
---|---|---|
startPreview:renderMode:mirrorMode | 开启摄像头本地预览,可以指定本地渲染模式和镜像模式。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。 | AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。 |
startPreview | 开启摄像头本地预览。renderMode默认为AliLiveRenderModeAuto,mirroeMode默认为AliLiveRenderMirrorModeOnlyFrontCameraPreviewEnabled。开启本地预览不会立刻开始推送媒体流信息到CDN上,需要调用startPushWithURL才真正开始推流。本地预览成功会触发onPreviewStarted回调。 | |
stopPreview | 停止摄像头本地预览,结束本地预览成功会触发onPreviewStoped回调。 |
API | 描述 | 所属类及说明 |
---|---|---|
startPushWithURL | 开始推流。推流成功后会触发onLivePushStarted回调。 | AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。 |
stopPush | 停止推流。停止推流成功后会触发onLivePushStoped回调。 | |
pausePush | 暂停摄像头采集并进入垫片推流状态(仅支持RTMP模式推流)。需要先调用startPushWithURL后才可以调用pausePush,否则调用顺序会出错。 | |
resumePush | 恢复摄像头采集并结束垫片推流状态(仅支持RTMP模式推流)。需要先调用pausePush后才可以调用resumePush,否则调用顺序会出错。 | |
isPublishing | 查询是否正在推流。 | |
livePushURL | 获取当前推流的地址。 |
API | 描述 | 所属类及说明 |
---|---|---|
subscribeStream | 订阅RTC方式连麦的成员视频流。 | AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。 |
unSubscribeStream | 取消订阅RTC方式的连麦成员视频流。 | |
renderRemoteStreamWithView:url:renderMode:mirrorMode | 为连麦成员视频流渲染窗口。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。 | |
renderRemoteStreamWithView:url | 为连麦成员视频流渲染窗口。renderMode默认为AliLiveRenderModeAuto,mirrorMode默认为AliLiveRenderMirrorModeAllDisabled。当该接口调用后,会触发onFirstRemoteVideoFrameDrawn回调,表示开始渲染连麦成员视频流。 |
API | 描述 | 所属类及说明 |
---|---|---|
getRaceBeautyManager | 获取美颜管理类AliLiveRaceBeautyManager的对象。 | AliLiveEngine:直播推流核心类,实现RTMP和RTC两种模式的推流功能、RTC模式下拉流功能、视频渲染、美颜开关等,是直播推流一体化SDK最重要的类。 |
enableBeautyEffect | 美颜开关。 | AliLiveRaceBeautyManager:美颜功能控制类,即美颜类型,包含美白、磨皮。 |
setRaceBeautyParams:value | 设置某个美颜的参数。 |
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 | 设置变声模式。 |
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 播放状态对应的错误码。