You need to enable JavaScript to run this app.
文档中心
视频直播

视频直播

复制全文
下载 pdf
SDK API 参考
API 详情
复制全文
下载 pdf
API 详情

VeLiveFileRecorderManager
@interface VeLiveFileRecorderManager : NSObject

直播录制管理对象。

成员函数

返回名称
voidstartRecord:config:
voidstopRecord

函数说明

startRecord:config:

- (void)startRecord:(NSString *)path config:(VeLiveFileRecorderConfiguration *)config;

开始直播录制。

传入参数

参数名类型说明
pathNSString*录制文件保存路径,不能为空。
configVeLiveFileRecorderConfiguration*直播录制配置。详情请参见 VeLiveFileRecorderConfiguration。

注意

stopRecord

- (void)stopRecord;

停止本地直播录制。

注意

VeLiveCameraDevice
@interface VeLiveCameraDevice : NSObject

相机设备管理对象。

成员函数

返回名称
BOOLisTorchSupported
intenableTorch:
intsetZoomRatio:
floatgetCurrentZoomRatio
floatgetMaxZoomRatio
floatgetMinZoomRatio
BOOLisAutoFocusEnabled
intenableAutoFocus:
intsetFocusPosition:
BOOLisAutoExposureEnabled
intenableAutoExposure:
BOOLisExposurePositionSupported
intsetExposurePosition:
intsetExposureCompensation:
floatgetMinExposureCompensation
floatgetMaxExposureCompensation
floatgetCurrentExposureCompensation

函数说明

isTorchSupported

- (BOOL)isTorchSupported;

是否支持闪光灯。

返回值

  • YES:支持;
  • NO:不支持。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

enableTorch:

- (int)enableTorch:(BOOL)enable;

开启/关闭闪光灯。

传入参数

参数名类型说明
enableBOOL是否开启闪光灯。默认为 NO。
  • YES:开启;
  • NO:关闭。

返回值

  • =0:开启/关闭成功;
  • ≠0:开启/关闭失败。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

setZoomRatio:

- (int)setZoomRatio:(float)ratio;

设置摄像头的缩放倍数。

传入参数

参数名类型说明
ratiofloat缩放倍数。默认为原尺寸,缩放倍数的取值范围为 [getMinZoomRatio,getMaxZoomRatio]。

返回值

  • =0:缩放成功;
  • ≠0:缩放失败。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

getCurrentZoomRatio

- (float)getCurrentZoomRatio;

获取摄像头当前的缩放倍数。

返回值

  • ≤0:表示不支持缩放;
  • >0:支持缩放,数值表示当前缩放倍数。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

getMaxZoomRatio

- (float)getMaxZoomRatio;

获取摄像头的最大缩放倍数。

返回值

  • ≤0:表示不支持缩放;
  • >0:支持缩放,数值表示最大缩放倍数。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

getMinZoomRatio

- (float)getMinZoomRatio;

获取摄像头的最小缩放倍数。

返回值

  • ≤0:表示不支持缩放;
  • >0:支持缩放,数值表示最小缩放倍数。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

isAutoFocusEnabled

- (BOOL)isAutoFocusEnabled;

是否支持自动对焦。

返回值

  • YES:支持;
  • NO:不支持。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

enableAutoFocus:

- (int)enableAutoFocus:(BOOL)enable;

开启/关闭自动对焦功能。

传入参数

参数名类型说明
enableBOOL是否开启自动对焦,默认为 YES。
  • YES:开启;
  • NO:关闭。

返回值

  • =0:开启/关闭成功;
  • ≠0:开启/关闭失败。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

setFocusPosition:

- (int)setFocusPosition:(CGPoint)position;

设置摄像头的对焦位置。

传入参数

参数名类型说明
positionCGPoint以左上角为原点,对焦点距当前视图的坐标值。

返回值

  • =0:设置成功;
  • ≠0:设置失败。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

isAutoExposureEnabled

- (BOOL)isAutoExposureEnabled;

检查当前摄像头是否支持自动曝光功能。

返回值

  • YES:支持。
  • NO:不支持。

注意

在调用 startVideoCapture: 启动视频采集后,调用该方法。

enableAutoExposure:

- (int)enableAutoExposure:(BOOL)enable;

开启或关闭自动曝光功能。

传入参数

参数名类型说明
enableBOOL是否开启自动曝光功能。默认值为 NO。
  • YES: 开启自动曝光。
  • NO: 关闭自动曝光。

返回值

  • 0: 成功。
  • ≠0: 失败。

注意

在调用 startVideoCapture: 启动视频采集后,调用该方法。

isExposurePositionSupported

- (BOOL)isExposurePositionSupported;

检查当前使用的摄像头是否支持手动设置曝光点。

返回值

  • YES: 支持。

  • NO: 不支持。

注意

必须已调用 startVideoCapture: 使用 SDK 内部采集模块进行视频采集时,才能检查曝光点设置能力。

setExposurePosition:

- (int)setExposurePosition:(CGPoint)position;

设置当前使用的摄像头的曝光点。

传入参数

参数名类型说明
positionCGPoint曝光点坐标。以本地预览画布的左上为坐标原点,position的x字段为曝光点水平方向归一化坐标,y字段为曝光点垂直方向归一化坐标,取值范围为 [0, 1]。

返回值

  • =0: 成功。
  • ≠0: 失败。

注意

  • 必须已调用 startVideoCapture: 使用 SDK 内部采集模块进行视频采集,并且使用 SDK 内部渲染时,才能设置曝光点。
  • 曝光点设置为画布中央(即x和y均取 0.5)时,恢复系统默认值。
  • 调用 stopVideoCapture: 关闭内部采集后,设置的曝光点失效。

setExposureCompensation:

- (int)setExposureCompensation:(float)value;

设置当前使用的摄像头的曝光补偿。

传入参数

参数名类型说明
valuefloat曝光补偿值,取值范围 [getMinExposureCompensation, getMaxExposureCompensation],0 为系统默认值表示没有曝光补偿。

返回值

  • =0:设置成功;
  • ≠0:设置失败。

注意

  • 必须已调用 startVideoCapture: 使用 SDK 内部采集模块进行视频采集时,才能设置曝光补偿。
  • 调用 stopVideoCapture: 关闭内部采集后,设置的曝光补偿失效。

getMinExposureCompensation

- (float)getMinExposureCompensation;

获取摄像头的最小曝光补偿。

返回值

  • ≤0:表示不支持曝光补偿;
  • >0:支持曝光补偿,数值表示最小曝光补偿。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

getMaxExposureCompensation

- (float)getMaxExposureCompensation;

获取摄像头的最大曝光补偿。

返回值

  • ≤0:表示不支持曝光补偿;
  • >0:支持曝光补偿,数值表示最大曝光补偿。

注意

需要在调用 startVideoCapture: 启动相机采集后,调用本方法。

getCurrentExposureCompensation

- (float)getCurrentExposureCompensation;

获取当前摄像头的曝光补偿。

返回值

当前摄像头的曝光补偿。0 代表无曝光补偿。取值范围为 [getMinExposureCompensation,getMaxExposureCompensation]。

注意

在调用 startVideoCapture: 启动视频采集后,调用该方法。

VeLiveMediaPlayer
@interface VeLiveMediaPlayer : NSObject

媒体播放器对象。

成员函数

返回名称
intprepare:
voiddestroy
voidsetListener:
voidsetFrameListener:
voidenableMixer:
voidenableAutoEq:targetLufs:
voidsetRenderView:
voidenableBGMLoop:
intstart
intstop
voidpause
voidresume
intseek:
longgetDuration
voidsetBGMVolume:
voidsetVoiceVolume:

函数说明

prepare:

- (int)prepare:(NSString *)url;

设置文件路径。支持的文件格式包括 MP3、AAC、M4A、WAV。

传入参数

参数名类型说明
urlNSString*文件路径。

返回值

  • 0:成功;
  • ≠0:失败。

destroy

- (void)destroy;

销毁播放器实例。

setListener:

- (void)setListener:(nullable id <VeLiveMediaPlayerListener>)listener;

设置播放状态的监听。

传入参数

参数名类型说明
listenernullable id<VeLiveMediaPlayerListener>播放状态监听。详情请参见 VeLiveMediaPlayerListener。

注意

重复调用本方法,仅最后一次调用生效。

setFrameListener:

- (void)setFrameListener:(nullable id <VeLiveMediaPlayerFrameListener>)listener;

设置音视频帧回调的监听。

传入参数

参数名类型说明
listenernullable id<VeLiveMediaPlayerFrameListener>音视频帧回调监听。详情请参见 VeLiveMediaPlayerFrameListener。

注意

重复调用本方法,仅最后一次调用生效。

enableMixer:

- (void)enableMixer:(BOOL)enable;

开启/关闭音频是否混音到直播流。

传入参数

参数名类型说明
enableBOOL开启/关闭,默认为 NO。
  • YES:开启;
  • NO:关闭。

enableAutoEq:targetLufs:

- (void)enableAutoEq:(float)sourceLufs targetLufs:(float)targetLufs;

开启/关闭自动音量均衡。

传入参数

参数名类型说明
sourceLufsfloat源响度。
targetLufsfloat目标响度。

setRenderView:

- (void)setRenderView:(UIView *)view;

支持 MP4 格式的视频渲染。

传入参数

参数名类型说明
viewUIView*渲染视图。

enableBGMLoop:

- (void)enableBGMLoop:(BOOL)enable;

设置是否循环播放。

传入参数

参数名类型说明
enableBOOL是否循环播放。默认为 NO。
  • YES:循环播放;
  • NO:不循环播放。

start

- (int)start;

开始播放。

返回值

  • 0:成功;
  • ≠0:失败。

注意

  • 需要在调用 prepare: 设置文件路径后,调用本方法;
  • 此方法为异步操作。当 SDK 收到开始播放 onStart 的回调后,开始播放。

stop

- (int)stop;

停止播放。

返回值

  • 0:成功;
  • ≠0:失败。

注意

需要在调用 start 开始播放后,调用本方法。

pause

- (void)pause;

暂停播放。

注意

需要在调用 start 开始播放后,调用本方法。

resume

- (void)resume;

恢复播放。

注意

需要在调用 pause 暂停播放后,调用本方法。

seek:

- (int)seek:(long)pos;

设置播放进度。

传入参数

参数名类型说明
poslong播放时间,单位为 ms。

返回值

  • 0:成功;
  • ≠0:失败。

getDuration

- (long)getDuration;

获取文件的总时长,单位为 ms。

返回值

  • >0:成功,音频文件时长;
  • ≤0:失败。

注意

需要在调用 start 开始播放后,调用本方法。

setBGMVolume:

- (void)setBGMVolume:(float)volume;

设置播放音频的音量。

传入参数

参数名类型说明
volumefloat播放音频音量,取值范围为 [0.0,4.0]。

setVoiceVolume:

- (void)setVoiceVolume:(float)volume;

设置音频采集音量。

传入参数

参数名类型说明
volumefloat音频采集音量,取值范围为 [0.0,4.0]。

注意

需要在调用 start 开始播放背景音乐后,调用本方法。

VeLiveAudioDevice
@interface VeLiveAudioDevice : NSObject

音频设备管理类。该类提供了用于管理和控制音频设备,包括设置音量、获取当前音量、检查硬件耳返支持情况、开启或关闭耳返的方法。

成员函数

返回名称
voidsetVoiceLoudness:
floatgetVoiceLoudness
BOOLisSupportHardwareEcho
voidenableEcho:
BOOLisEnableEcho

函数说明

setVoiceLoudness:

- (void)setVoiceLoudness:(float)level;

设置音量响度。

传入参数

参数名类型说明
levelfloat音量响度等级,取值范围为 [0.0,4.0]。

getVoiceLoudness

- (float)getVoiceLoudness;

获取当前音量响度。

返回值

当前音量响度等级。

isSupportHardwareEcho

- (BOOL)isSupportHardwareEcho;

查询是否支持硬件耳返。

返回值

  • YES:支持;
  • NO:不支持。

enableEcho:

- (void)enableEcho:(BOOL)enable;

是否开启耳返功能。

传入参数

参数名类型说明
enableBOOL耳返功能开关。默认值为 NO。
  • YES:开启;
  • NO:关闭。

注意

需要在调用 startAudioCapture: 启动音频采集后,调用本方法。

isEnableEcho

- (BOOL)isEnableEcho;

获取当前耳返开启状态。

返回值

  • YES:开启;
  • NO:关闭。

注意

需要在调用 startAudioCapture: 启动音频采集后,调用本方法。

VeLiveMixerManager
@interface VeLiveMixerManager : NSObject

音视频混流器管理对象。支持添加/移除音视频流、发送自定义音视频帧、更新混流布局等。

成员函数

返回名称
intaddVideoStream
voidremoveVideoStream:
intaddAudioStream
intaddAudioStream:
voidremoveAudioStream:
voidsetAudioStream:volume:
intgetOriginVideoStream
intgetOriginAudioStream
intgetAppAudioStream
voidsendCustomVideoFrame:streamId:
voidsendCustomAudioFrame:streamId:
voidupdateStreamMixDescription:

函数说明

addVideoStream

- (int)addVideoStream;

添加一路需要混流的视频流到混流器中。

返回值

视频流 ID。

removeVideoStream:

- (void)removeVideoStream:(int)streamId;

从混流器中移除一路非主路的视频流。

传入参数

参数名类型说明
streamIdint需要移除的非主路视频流 ID。

addAudioStream

- (int)addAudioStream;

添加一路音频流到混流器中。

返回值

音频流 ID。

addAudioStream:

- (int)addAudioStream:(VeLiveAudioMixType)type;

添加一路音频流到混流器中,并指定混流类型。

传入参数

参数名类型说明
typeVeLiveAudioMixType混流类型,详情请参见 VeLiveAudioMixType。

返回值

音频流 ID。

removeAudioStream:

- (void)removeAudioStream:(int)streamId;

从混流器中移除一路非主路的音频流。

传入参数

参数名类型说明
streamIdint需要移除的非主路音频流 ID。

setAudioStream:volume:

- (void)setAudioStream:(int)streamId volume:(float)volume;

设置指定混流音频的音量。当你将 VeLiveAudioMixType 设置为 VeLiveAudioMixPlayAndPush 时,该方法同时控制该路音频在拉流端和本地的播放音量。

传入参数

参数名类型说明
streamIdint非主路音频流 ID。
volumefloat音量大小,范围为 [0.0,4.0]。

getOriginVideoStream

- (int)getOriginVideoStream;

获取主路视频流 ID。

getOriginAudioStream

- (int)getOriginAudioStream;

获取主路音频流 ID。

getAppAudioStream

- (int)getAppAudioStream;

获取屏幕推流 App 的音频流 ID。

sendCustomVideoFrame:streamId:

- (void)sendCustomVideoFrame:(VeLiveVideoFrame *)frame streamId:(int)streamId;

发送指定混流 ID 的自定义视频帧数据。

传入参数

参数名类型说明
frameVeLiveVideoFrame*自定义的视频帧,详情请参见 VeLiveVideoFrame。
streamIdint需要混流的视频流 ID。

sendCustomAudioFrame:streamId:

- (void)sendCustomAudioFrame:(VeLiveAudioFrame *)frame streamId:(int)streamId;

发送指定混流 ID 的自定义音频帧数据。

传入参数

参数名类型说明
frameVeLiveAudioFrame*自定义的音频帧,详情请参见 VeLiveAudioFrame。
streamIdint混流的音频流 ID。

updateStreamMixDescription:

- (void)updateStreamMixDescription:(VeLiveStreamMixDescription *)mixDescription;

更新音视频混流的布局。

传入参数

参数名类型说明
mixDescriptionVeLiveStreamMixDescription*新的音视频混流布局,详情请参见 VeLiveStreamMixDescription。

VeLivePusher(ScreenCapture)
@interface VeLivePusher (ScreenCapture)

推流引擎类。

成员函数

返回名称
voidstartScreenCapture:
voidstopScreenCapture
voidpauseScreenCapture
voidresumeScreenCapture

函数说明

startScreenCapture:

- (void)startScreenCapture:(NSString *)applicationGroupIdentifier;

开启屏幕采集。

传入参数

参数名类型说明
applicationGroupIdentifierNSString*iOS app group 标识符。

stopScreenCapture

- (void)stopScreenCapture;

停止屏幕采集。

注意

该方法用于结束当前屏幕采集流程,并释放相关资源。调用本方法后,pauseScreenCapture 和 resumeScreenCapture 将不再生效。

pauseScreenCapture

- (void)pauseScreenCapture;

暂停屏幕采集。

注意

调用该方法后,屏幕采集将暂停输出数据,但不会销毁内部资源。您可通过 resumeScreenCapture 来恢复采集。如果当前采集已经停止或尚未开始,调用本方法不会产生任何效果。

resumeScreenCapture

- (void)resumeScreenCapture;

恢复屏幕采集。

注意

在调用 pauseScreenCapture 暂停后,通过本方法可以恢复屏幕采集输出。如果屏幕采集已经停止或尚未开始,调用本方法不会产生任何效果。

VeLiveVideoEffectManager
@interface VeLiveVideoEffectManager : NSObject

视频特效管理对象。用于管理和设置视频特效,包括美颜、美形、美体、美妆、滤镜等。

成员函数

返回名称
intsetupWithConfig:
voidupdateLicense:
intsetAlgoModelPath:
intsetEnable:
intsetComposeNodes:
intappendComposeNodes:
intremoveComposeNodes:
intupdateComposerNodeIntensity:nodeKey:intensity:
intsetFilter:
intupdateFilterIntensity:
intsetSticker:
voidsetAdvancedFeature:isGLThread:isAsync:

函数说明

setupWithConfig:

- (int)setupWithConfig:(VeLiveVideoEffectLicenseConfiguration *)config;

视频特效许可证配置,用于初始化视频特效管理对象。

传入参数

参数名类型说明
configVeLiveVideoEffectLicenseConfiguration*特效初始化配置,详情请参见 VeLiveVideoEffectLicenseConfiguration。

返回值

  • 0:调用成功;
  • -1:调用失败。

updateLicense:

- (void)updateLicense:(void (^)(int result, NSString *_Nullable message))completion;

在许可证过期后,可调用该方法更新 License,本方法仅对在线 License 有效。

传入参数

参数名类型说明
completionvoid(^)(int result, NSString* message)结果回调信息。

注意

  • 需要通过调用 setupWithConfig: 设置视频特效许可证后调用;
  • 本方法为异步操作。

setAlgoModelPath:

- (int)setAlgoModelPath:(NSString *)path;

设置特效算法模型包的路径。

传入参数

参数名类型说明
pathNSString*特效算法模型包的路径。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

需要通过调用 setupWithConfig: 设置视频特效许可证后调用。

setEnable:

- (int)setEnable:(BOOL)enable;

创建/销毁特效引擎。

传入参数

参数名类型说明
enableBOOL是否创建特效引擎。默认为 NO。
  • YES:创建;
  • NO:销毁。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

  • 该方法需要在调用 setupWithConfig: 和 setAlgoModelPath: 后调用;
  • 该方法不直接开启/关闭视频特效,您需要在调用该方法后,调用 setComposeNodes: 开启视频特效;
  • 通用场景下,特效引擎会随 EffectManager 销毁而销毁。如果您对性能有较高要求,也可以在不使用特效相关功能时,调用该方法销毁特效引擎;
  • 如果重复创建/销毁特效引擎,会产生时间消耗。

setComposeNodes:

- (int)setComposeNodes:(nullable NSArray<NSString *> *)nodes;

设置视频特效组合。支持设置 ComposeMakeup.bundle 中的功能,包括美颜、美形、美体、美妆等。

传入参数

参数名类型说明
nodesnullable NSArray<NSString*>*视频特效素材包路径数组。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

  • 需要在调用 setEnable: 创建特效引擎后,调用本方法;
  • 重复调用本方法,仅最后一次调用生效;
  • 如果需要在当前的视频特效组合中叠加特效,可调用 appendComposeNodes: 方法。

appendComposeNodes:

- (int)appendComposeNodes:(NSArray<NSString *> *)nodes;

调用本方法,会在 setComposeNodes: 设置的视频特效组合的基础上叠加特效。

传入参数

参数名类型说明
nodesNSArray<NSString*>*视频特效素材包路径数组。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

需要在调用 setEnable: 创建特效引擎后,调用本方法。

removeComposeNodes:

- (int)removeComposeNodes:(NSArray<NSString *> *)nodes;

调用本方法,可移除调用 setComposeNodes: 和 ppendComposeNodes: 设置的视频特效资源。

传入参数

参数名类型说明
nodesNSArray<NSString*>*视频特效素材包路径数组。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

需要在调用 setEnable: 创建特效引擎后,调用本方法。

updateComposerNodeIntensity:nodeKey:intensity:

- (int)updateComposerNodeIntensity:(NSString *)node nodeKey:(NSString *)key intensity:(float)intensity;

设置视频特效强度。

传入参数

参数名类型说明
nodeNSString*视频特效素材包路径。
keyNSString*需要设置的素材 key 名称
intensityfloat需要设置的强度值。取值范围为 [0.0,1.0]。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

  • 需要在调用 setComposeNodes: 设置视频特效组合或调用 appendComposeNodes: 叠加视频特效素材包后,调用本方法;
  • 该方法仅适用于同时含有上述三个参数的特效资源,对于没有强度参数的特效(如贴纸),该方法无效。

setFilter:

- (int)setFilter:(nullable NSString *)path;

设置颜色滤镜。

传入参数

参数名类型说明
pathnullable NSString*滤镜资源包绝对路径。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

请在调用 setEnable: 开启视频特效后,调用该方法。

updateFilterIntensity:

- (int)updateFilterIntensity:(float)intensity;

设置已启用的颜色滤镜强度。

传入参数

参数名类型说明
intensityfloat滤镜强度,取值范围为 [0.0,1.0]。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

请在调用 setFilter: 设置颜色滤镜后调用。

setSticker:

- (int)setSticker:(nullable NSString *)path;

设置贴纸特效。

传入参数

参数名类型说明
pathnullable NSString*贴纸素材包的绝对路径。

返回值

  • 0:调用成功;
  • -1:调用失败。

注意

请在调用 setEnable: 开启视频特效后,调用该方法。

setAdvancedFeature:isGLThread:isAsync:

- (void)setAdvancedFeature:(void (^)(void *handle))callback isGLThread:(BOOL)isGLThread isAsync:(BOOL)isAsync;

智能美化特效(简称 CV)高级接口。

传入参数

参数名类型说明
callbackvoid(^)(void*handle)回调 CV 的 handle。
isGLThreadBOOL是否在 GL 线程回调 callback。
isAsyncBOOL是否同步执行 callback。

注意

请在调用 setEnable: 开启视频特效后,调用该方法,不要在主线程中频繁执行同步操作。

VeLivePusher
@interface VeLivePusher : NSObject

推流引擎类。

静态函数

返回名称
voidsetLogLevel:

成员函数

返回名称
instancetypeinitWithConfig:
voiddestroy
voidsetObserver:
voidsetStatisticsObserver:interval:
intaddVideoFrameListener:
intremoveVideoFrameListener:
intaddAudioFrameListener:
intremoveAudioFrameListener:
intsetScreenCaptureObserver:
voidsetRenderView:
voidsetRenderFillMode:
voidsetVideoMirror:enable:
BOOLisMirror:captureType:
voidstartPush:
voidstartPushWithUrls:
voidstopPush
BOOLisPushing
voidstartVideoCapture:
voidstopVideoCapture
voidswitchVideoCapture:
voidstartAudioCapture:
voidstopAudioCapture
voidswitchAudioCapture:
VeLiveVideoCaptureTypegetCurrentVideoCaptureType
VeLiveAudioCaptureTypegetCurrentAudioCaptureType
voidupdateCustomImage:
voidsetMute:
BOOLisMute
voidsetVideoEncoderConfiguration:
voidsetAudioEncoderConfiguration:
voidstartFileRecording:config:listener:
voidstopFileRecording
VeLiveCameraDevicegetCameraDevice
VeLiveAudioDevicegetAudioDevice
VeLiveMixerManagergetMixerManager
VeLiveVideoEffectManagergetVideoEffectManager
VeLiveMediaPlayercreatePlayer
voidsetVideoFrameFilter:
voidsetAudioFrameFilter:
voidsetOrientation:
intsetWatermark:x:y:scale:
voidsnapshot:
intsendSeiMessage:value:repeat:isKeyFrame:allowsCovered:
intpushExternalVideoFrame:
intpushExternalVideoEncodeFrame:
intpushExternalAudioFrame:
intsetProperty:value:
voidrequestIDRFrame
voidsetEGLVersion:
EAGLContext*getEGLContext

函数说明

setLogLevel:

+ (void)setLogLevel:(VeLivePusherLogLevel)level;

设置输出到控制台的日志等级。

传入参数

参数名类型说明
levelVeLivePusherLogLevel输出的日志级别,默认值为 VeLivePusherLogLevelNone,表示关闭日志。级别详情请参见 VeLivePusherLogLevel。

initWithConfig:

- (instancetype)initWithConfig:(VeLivePusherConfiguration *)config NS_DESIGNATED_INITIALIZER;

初始化推流器。

传入参数

参数名类型说明
configVeLivePusherConfiguration*推流配置类。详细信息请参见 VeLivePusherConfiguration。

destroy

- (void)destroy;

停止采集和推流,并销毁推流器。通常在调用 stopPush 结束推流后调用此方法进行清理。

setObserver:

- (void)setObserver:(nullable id <VeLivePusherObserver>)observer;

设置推流器回调,通过设置回调,监听推流器的推流错误、状态、网络质量、设备、首帧等回调事件。

传入参数

参数名类型说明
observernullable id<VeLivePusherObserver>推流器回调对象,详细信息请参见 VeLivePusherObserver。

注意

  • 需要在创建推流引擎后,调用本方法;
  • 重复调用本方法,仅最后一次调用生效。

setStatisticsObserver:interval:

- (void)setStatisticsObserver:(nullable id <VeLivePusherStatisticsObserver>)observer interval:(int)interval;

设置推流器周期性回调,用于定期获取推流状态信息。

传入参数

参数名类型说明
observernullable id<VeLivePusherStatisticsObserver>推流器周期性回调对象,详细信息请参见 VeLivePusherStatisticsObserver。
intervalint周期性回调的时间间隔,单位为 s,默认值为 5。

注意

  • 需要在创建推流引擎后,调用本方法;
  • 重复调用本方法,仅最后一次调用生效。

addVideoFrameListener:

- (int)addVideoFrameListener:(id <VeLiveVideoFrameListener>)listener;

添加视频帧的监听回调,用于获取推流器输出的视频帧。

传入参数

参数名类型说明
listenerid<VeLiveVideoFrameListener>视频帧的监听回调,详细信息请参见 VeLiveVideoFrameListener。

返回值

  • 0:成功;
  • ≠0:失败。

removeVideoFrameListener:

- (int)removeVideoFrameListener:(id <VeLiveVideoFrameListener>)listener;

移除已添加的视频帧监听回调。

传入参数

参数名类型说明
listenerid<VeLiveVideoFrameListener>视频帧的监听回调,详细信息请参见 VeLiveVideoFrameListener。

返回值

  • 0:成功;
  • <0:失败。

注意

如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。

addAudioFrameListener:

- (int)addAudioFrameListener:(id <VeLiveAudioFrameListener>)listener;

添加音频帧的监听回调,用于获取推流器输出的音频帧。

传入参数

参数名类型说明
listenerid<VeLiveAudioFrameListener>音频帧监听回调,详细信息请参见 VeLiveAudioFrameListener。

返回值

  • 0:成功;
  • <0:失败。

removeAudioFrameListener:

- (int)removeAudioFrameListener:(id <VeLiveAudioFrameListener>)listener;

移除已添加的音频帧监听回调。

传入参数

参数名类型说明
listenerid<VeLiveAudioFrameListener>音频帧的监听回调,详细信息请参见 VeLiveAudioFrameListener。

返回值

  • 0:成功;
  • <0:失败。

注意

如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。

setScreenCaptureObserver:

- (int)setScreenCaptureObserver:(id <VeLiveScreenCaptureStatusObserver>)observer;

添加屏幕采集的监听。

传入参数

参数名类型说明
observerid<VeLiveScreenCaptureStatusObserver>录屏推流事件监听器。详情见 VeLiveScreenCaptureStatusObserver。

返回值

  • 0:成功;
  • <0:失败。

注意

如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。

setRenderView:

- (void)setRenderView:(nullable UIView *)view;

设置本地预览视图。如您对采集到的画面进行了美颜等处理,View 中显示的是美颜后的画面。

传入参数

参数名类型说明
viewnullable UIView*本地预览视图。

setRenderFillMode:

- (void)setRenderFillMode:(VeLivePusherRenderMode)fillMode;

设置本地预览填充模式。

传入参数

参数名类型说明
fillModeVeLivePusherRenderMode本地预览填充模式,默认值为 VeLivePusherRenderModeHidden,即视频帧自适应画布的填充模式,详细信息请参见 VeLivePusherRenderMode。

setVideoMirror:enable:

- (void)setVideoMirror:(VeLiveVideoMirrorType)type enable:(BOOL)enable;

开启/关闭镜像。该方法可用于配置预览和推流画面是否镜像。

传入参数

参数名类型说明
typeVeLiveVideoMirrorType镜像类型,详细信息请参见 VeLiveVideoMirrorType。
enableBOOL是否开启镜像。
  • YES:开启;
  • NO:关闭。

isMirror:captureType:

- (BOOL)isMirror:(VeLiveVideoMirrorType)mirrorType captureType:(VeLiveVideoCaptureType)captureType;

获取指定镜像类型和采集类型下的视频镜像状态。适用于主播需要了解当前镜像状态的场景,例如直播前确认预览画面是否符合预期。

传入参数

参数名类型说明
mirrorTypeVeLiveVideoMirrorType镜像类型。详细信息请参见 VeLiveVideoMirrorType。
captureTypeVeLiveVideoCaptureType视频采集类型。详细信息请参见 VeLiveVideoCaptureType。

返回值

视频镜像状态。

  • YES:已开启镜像。
  • NO:未开启镜像。

startPush:

- (void)startPush:(NSString *)url;

开始推流。

传入参数

参数名类型说明
urlNSString*推流地址,用于将直播流推送到目标服务器。

startPushWithUrls:

- (void)startPushWithUrls:(NSArray<NSString *> *)urls;

开始推流,支持备用推流地址。

传入参数

参数名类型说明
urlsNSArray<NSString*>*推流地址列表,包含一个或多个推流地址。

注意

当数组中第一个推流地址不可用时,会自动切换到后面的备用推流地址继续推流。

stopPush

- (void)stopPush;

停止推流。

注意

停止推流后,可以通过调用 startPush: 或 startPushWithUrls: 方法重新开始推流。

isPushing

- (BOOL)isPushing;

当前是否正在推流中,可用来查询推流器的当前状态。

返回值

是否正在推流。

  • YES:正在推流中;
  • NO:已经停止推流。

startVideoCapture:

- (void)startVideoCapture:(VeLiveVideoCaptureType)type;

开始视频采集。

传入参数

参数名类型说明
typeVeLiveVideoCaptureType视频采集类型,详细信息请参见 VeLiveVideoCaptureType。

注意

调用该接口后,可以通过调用接口 stopVideoCapture 停止视频采集。

stopVideoCapture

- (void)stopVideoCapture;

停止视频采集。

注意

调用该接口后,可以通过调用接口 startVideoCapture: 开始视频采集。

switchVideoCapture:

- (void)switchVideoCapture:(VeLiveVideoCaptureType)type;

切换视频采集类型。

传入参数

参数名类型说明
typeVeLiveVideoCaptureType视频采集类型,详细信息请参见 VeLiveVideoCaptureType。

注意

该接口必须在调用接口 startVideoCapture: 后调用才能生效。

startAudioCapture:

- (void)startAudioCapture:(VeLiveAudioCaptureType)type;

开始音频采集。

传入参数

参数名类型说明
typeVeLiveAudioCaptureType音频采集类型,详细信息请参见 VeLiveAudioCaptureType。

注意

调用该接口后,可以通过调用接口 [stopAudioCapture 停止音频采集。

stopAudioCapture

- (void)stopAudioCapture;

停止音频采集。

注意

调用该接口后,可以通过调用接口 startAudioCapture: 开始音频采集。

switchAudioCapture:

- (void)switchAudioCapture:(VeLiveAudioCaptureType)type;

切换音频采集类型。

传入参数

参数名类型说明
typeVeLiveAudioCaptureType音频采集类型,详细信息请参见 VeLiveAudioCaptureType。

注意

该接口必须在调用接口 startAudioCapture: 后调用才能生效。

getCurrentVideoCaptureType

- (VeLiveVideoCaptureType)getCurrentVideoCaptureType;

获取当前视频采集类型。

返回值

视频采集类型,详细信息请参见 VeLiveVideoCaptureType。

getCurrentAudioCaptureType

- (VeLiveAudioCaptureType)getCurrentAudioCaptureType;

获取当前音频采集类型。

返回值

音频采集类型,详细信息请参见 VeLiveAudioCaptureType。

updateCustomImage:

- (void)updateCustomImage:(UIImage *)image;

自定义静态图,适用于静态图推流采集类型。使用该接口时,需要将视频采集类型设置为 VeLiveVideoCaptureCustomImage,您可调用 startVideoCapture: 方法,将 VeLiveVideoCaptureType 设置为 VeLiveVideoCaptureCustomImage。

传入参数

参数名类型说明
imageUIImage*静态图片,用于在静态图推流采集类型下设置静态图。

setMute:

- (void)setMute:(BOOL)mute;

设置静音。

传入参数

参数名类型说明
muteBOOL是否设置为静音。默认为 NO。
  • YES:静音推流;
  • NO:正常推流。

isMute

- (BOOL)isMute;

当前是否是静音状态。

返回值

  • YES:当前是静音状态;
  • NO:当前非静音状态。

setVideoEncoderConfiguration:

- (void)setVideoEncoderConfiguration:(VeLiveVideoEncoderConfiguration *)config;

设置推流视频编码参数。

传入参数

参数名类型说明
configVeLiveVideoEncoderConfiguration*推流视频参数,支持设置推流视频分辨率、编码格式、目标码率和视频 GOP 大小等信息。详情请参见 VeLiveVideoEncoderConfiguration。

注意

该接口可在推流开始前或开始后调用。

setAudioEncoderConfiguration:

- (void)setAudioEncoderConfiguration:(VeLiveAudioEncoderConfiguration *)config;

设置推流音频编码参数。

传入参数

参数名类型说明
configVeLiveAudioEncoderConfiguration*推流音频编码参数,详情请参见 VeLiveAudioEncoderConfiguration。

注意

该接口需要在 startPush: 或 startPushWithUrls: 方法之前调用。

startFileRecording:config:listener:

- (void)startFileRecording:(NSString *)path config:(VeLiveFileRecorderConfiguration *)config listener:(id <VeLiveFileRecordingListener>)listener;

开始本地文件录制。

传入参数

参数名类型说明
pathNSString*录制文件保存路径,不能为空。
configVeLiveFileRecorderConfiguration*文件录制设置,详情请参见 VeLiveFileRecorderConfiguration。
listenerid<VeLiveFileRecordingListener>本地文件录制的监听,详情请参见 VeLiveFileRecordingListener。

stopFileRecording

- (void)stopFileRecording;

停止本地文件录制。

注意

该接口需要在 startFileRecording 方法之后调用。

getCameraDevice

- (VeLiveCameraDevice *)getCameraDevice;

获取相机设备管理对象 VeLiveCameraDevice。通过设备管理,您可以使用以下功能。

  • 控制闪光灯开关
  • 设置摄像头缩放比例
  • 设置自动对焦

返回值

相机设备管理对象 VeLiveCameraDevice。

注意

该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureFrontCamera 或 VeLiveVideoCaptureBackCamera。

getAudioDevice

- (VeLiveAudioDevice *)getAudioDevice;

获取音频模块管理对象。

返回值

音频模块管理对象 VeLiveAudioDevice。

注意

该接口需要在 startAudioCapture: 方法中设置 VeLiveAudioCaptureType 为 VeLiveAudioCaptureMicrophone。

getMixerManager

- (VeLiveMixerManager *)getMixerManager;

获取混流管理对象。

返回值

混流管理对象 VeLiveMixerManager。

getVideoEffectManager

- (VeLiveVideoEffectManager *)getVideoEffectManager;

获取视频特效管理对象 VeLiveVideoEffectManager。通过视频特效管理,您可以使用以下功能。

  • 设置美颜
  • 设置特效
  • 设置素材
  • 设置贴纸
  • 设置滤镜

返回值

视频特效管理对象 VeLiveVideoEffectManager。

注意

该接口需要集成智能美化特效 SDK 后才能使用。

createPlayer

- (VeLiveMediaPlayer *)createPlayer;

创建播放器。

返回值

播放器管理对象 VeLiveMediaPlayer。

setVideoFrameFilter:

- (void)setVideoFrameFilter:(nullable id <VeLiveVideoFrameFilter>)filter;

自定义视频处理。

传入参数

参数名类型说明
filternullable id<VeLiveVideoFrameFilter>视频帧滤镜对象 VeLiveVideoFrameFilter。

setAudioFrameFilter:

- (void)setAudioFrameFilter:(nullable id <VeLiveAudioFrameFilter>)filter;

自定义音频处理。

传入参数

参数名类型说明
filternullable id<VeLiveAudioFrameFilter>音频帧滤镜对象 VeLiveAudioFrameFilter。

setOrientation:

- (void)setOrientation:(UIInterfaceOrientation)orientation;

设置推流视频帧朝向。默认为竖屏推流。

传入参数

参数名类型说明
orientationUIInterfaceOrientation视频帧朝向。

setWatermark:x:y:scale:

- (int)setWatermark:(nullable UIImage *)image x:(float)x y:(float)y scale:(float)scale;

设置推流水印。

传入参数

参数名类型说明
imagenullable UIImage*水印图片。取值为 null 时,表示禁用水印。
xfloat水印的水平偏移量,即水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0.0,1.0]。
yfloat水印的垂直偏移量,即水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0.0,1.0]。
scalefloat水印图片的缩放比例,取值范围为 [0.0,1.0]。

返回值

  • 0:水印设置成功;
  • <0:水印设置失败。

snapshot:

- (void)snapshot:(id <VeLiveSnapshotListener>)listener;

视频截图。

传入参数

参数名类型说明
listenerid<VeLiveSnapshotListener>截图监听对象,详情请参见 VeLiveSnapshotListener。

sendSeiMessage:value:repeat:isKeyFrame:allowsCovered:

- (int)sendSeiMessage:(NSString *)key value:(nullable id)value repeat:(int)repeat isKeyFrame:(BOOL)isKeyFrame allowsCovered:(BOOL)allowsCovered;

通过视频帧发送 SEI 消息。

传入参数

参数名类型说明
keyNSString*SEI 消息为 JSON 格式的字符串。此参数为 JSON 结构中的 Key。
valuenullable idSEI 消息为 JSON 格式的字符串。此参数为 JSON 结构中的 Value。
repeatint消息发送重复的次数。例如,repeat 取值为 20,isKeyFrame 取值为 YES,则会在调用该方法后连续 20 个关键帧中添加 SEI 消息。
isKeyFrameBOOL是否仅在关键帧中包含 SEI 消息。
  • YES:仅在关键帧中包含;
  • NO:所有帧中均包含。
allowsCoveredBOOL是否允许覆盖。
  • YES:允许;
  • NO:不允许。

返回值

  • 0:成功;
  • <0:失败。

注意

  • 该接口需要在调用 startPush: 或 startPushWithUrls: 方法之后调用。
  • 在调用本接口发送 SEI 消息时,必须确保当前有可用的视频帧:
    • 使用外部设备或源采集视频时,如果应用切换到后台,您需要自行管理视频帧的生成或获取,或调用 switchVideoCapture(),将采集类型切换为 VeLiveVideoCaptureCustomImage、VeLiveVideoCaptureLastFrame 或 VeLiveVideoCaptureDummyFrame,以确保 SEI 消息能够正常发送。
    • 使用前置或后置摄像头采集视频时,如果应用切换到后台,需要调用 switchVideoCapture(),并将采集类型切换为 VeLiveVideoCaptureCustomImage、VeLiveVideoCaptureLastFrame 或 VeLiveVideoCaptureDummyFrame,以保证 SEI 消息的发送。

pushExternalVideoFrame:

- (int)pushExternalVideoFrame:(VeLiveVideoFrame *)frame;

推送外部视频帧数据。

传入参数

参数名类型说明
frameVeLiveVideoFrame*视频帧的数据信息,详情请参见 VeLiveVideoFrame。

返回值

  • 0:成功;
  • <0:失败。

注意

该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureExternal。

pushExternalVideoEncodeFrame:

- (int)pushExternalVideoEncodeFrame:(VeLiveVideoEncodeFrame *)encodeFrame;

推送外部视频编码数据。

传入参数

参数名类型说明
encodeFrameVeLiveVideoEncodeFrame*视频编码帧的数据信息,详情请参见 VeLiveVideoEncodeFrame。

返回值

  • 0:成功;
  • <0:失败。

注意

该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureFrontCamera 或 VeLiveVideoCaptureExternal。

pushExternalAudioFrame:

- (int)pushExternalAudioFrame:(VeLiveAudioFrame *)frame;

推送外部音频帧数据。

传入参数

参数名类型说明
frameVeLiveAudioFrame*外部音频数据。详情请参见 VeLiveAudioFrame。

返回值

  • 0:成功;
  • <0:失败。

注意

该接口需要在 startAudioCapture: 方法中设置 VeLiveAudioCaptureType 为 VeLiveAudioCaptureExternal。

setProperty:value:

- (int)setProperty:(NSString *)key value:(id)value;

高级配置。您可通过提交工单联系技术支持,了解配置方法。

传入参数

参数名类型说明
keyNSString*推流高级配置为 JSON 格式的字符串,此参数为 JSON 结构中的 Key。
valueid推流高级配置为 JSON 格式的字符串,此参数为 JSON 结构中的 Value。建议传入 NSDictionary 或者 NSString 对象。

返回值

  • 0:成功;
  • -1:失败,参数错误。

requestIDRFrame

- (void)requestIDRFrame;

强制请求 IDR 帧,发起请求以编码一个新的 IDR 帧。

注意

该接口需要在调用 startPush: 或 startPushWithUrls: 方法之后调用。

setEGLVersion:

- (void)setEGLVersion:(int)version;

设置 opengl 的版本号,默认值为 3。

传入参数

参数名类型说明
versionintopengl 版本号,支持的取值包括 2 和 3,分别对应 OpenGL 2.0 和 3.0 版本。

getEGLContext

- (EAGLContext *)getEGLContext;

获取 EAGL 的上下文,这是在多线程环境下用于共享的上下文。

返回值

EAGL 的上下文。

最近更新时间:2026.01.06 19:52:23
这个页面对您有帮助吗?
有用
有用
无用
无用