@interface VeLiveFileRecorderManager : NSObject
直播录制管理对象。
| 返回 | 名称 |
|---|---|
| void | startRecord:config: |
| void | stopRecord |
- (void)startRecord:(NSString *)path config:(VeLiveFileRecorderConfiguration *)config;
开始直播录制。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | NSString* | 录制文件保存路径,不能为空。 |
| config | VeLiveFileRecorderConfiguration* | 直播录制配置。详情请参见 VeLiveFileRecorderConfiguration。 |
注意
- (void)stopRecord;
停止本地直播录制。
注意
@interface VeLiveCameraDevice : NSObject
相机设备管理对象。
- (BOOL)isTorchSupported;
是否支持闪光灯。
返回值
YES:支持;NO:不支持。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (int)enableTorch:(BOOL)enable;
开启/关闭闪光灯。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否开启闪光灯。默认为 NO。
|
返回值
=0:开启/关闭成功;≠0:开启/关闭失败。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (int)setZoomRatio:(float)ratio;
设置摄像头的缩放倍数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| ratio | float | 缩放倍数。默认为原尺寸,缩放倍数的取值范围为 [getMinZoomRatio,getMaxZoomRatio]。 |
返回值
=0:缩放成功;≠0:缩放失败。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (float)getCurrentZoomRatio;
获取摄像头当前的缩放倍数。
返回值
≤0:表示不支持缩放;>0:支持缩放,数值表示当前缩放倍数。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (float)getMaxZoomRatio;
获取摄像头的最大缩放倍数。
返回值
≤0:表示不支持缩放;>0:支持缩放,数值表示最大缩放倍数。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (float)getMinZoomRatio;
获取摄像头的最小缩放倍数。
返回值
≤0:表示不支持缩放;>0:支持缩放,数值表示最小缩放倍数。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (BOOL)isAutoFocusEnabled;
是否支持自动对焦。
返回值
YES:支持;NO:不支持。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (int)enableAutoFocus:(BOOL)enable;
开启/关闭自动对焦功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否开启自动对焦,默认为 YES。
|
返回值
=0:开启/关闭成功;≠0:开启/关闭失败。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (int)setFocusPosition:(CGPoint)position;
设置摄像头的对焦位置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| position | CGPoint | 以左上角为原点,对焦点距当前视图的坐标值。 |
返回值
=0:设置成功;≠0:设置失败。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (BOOL)isAutoExposureEnabled;
检查当前摄像头是否支持自动曝光功能。
返回值
YES:支持。NO:不支持。注意
在调用 startVideoCapture: 启动视频采集后,调用该方法。
- (int)enableAutoExposure:(BOOL)enable;
开启或关闭自动曝光功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否开启自动曝光功能。默认值为 NO。
|
返回值
0: 成功。≠0: 失败。注意
在调用 startVideoCapture: 启动视频采集后,调用该方法。
- (BOOL)isExposurePositionSupported;
检查当前使用的摄像头是否支持手动设置曝光点。
返回值
YES: 支持。
NO: 不支持。
注意
必须已调用 startVideoCapture: 使用 SDK 内部采集模块进行视频采集时,才能检查曝光点设置能力。
- (int)setExposurePosition:(CGPoint)position;
设置当前使用的摄像头的曝光点。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| position | CGPoint | 曝光点坐标。以本地预览画布的左上为坐标原点,position的x字段为曝光点水平方向归一化坐标,y字段为曝光点垂直方向归一化坐标,取值范围为 [0, 1]。 |
返回值
=0: 成功。≠0: 失败。注意
x和y均取 0.5)时,恢复系统默认值。- (int)setExposureCompensation:(float)value;
设置当前使用的摄像头的曝光补偿。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| value | float | 曝光补偿值,取值范围 [getMinExposureCompensation, getMaxExposureCompensation],0 为系统默认值表示没有曝光补偿。 |
返回值
=0:设置成功;≠0:设置失败。注意
- (float)getMinExposureCompensation;
获取摄像头的最小曝光补偿。
返回值
≤0:表示不支持曝光补偿;>0:支持曝光补偿,数值表示最小曝光补偿。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (float)getMaxExposureCompensation;
获取摄像头的最大曝光补偿。
返回值
≤0:表示不支持曝光补偿;>0:支持曝光补偿,数值表示最大曝光补偿。注意
需要在调用 startVideoCapture: 启动相机采集后,调用本方法。
- (float)getCurrentExposureCompensation;
获取当前摄像头的曝光补偿。
返回值
当前摄像头的曝光补偿。0 代表无曝光补偿。取值范围为 [getMinExposureCompensation,getMaxExposureCompensation]。
注意
在调用 startVideoCapture: 启动视频采集后,调用该方法。
@interface VeLiveMediaPlayer : NSObject
媒体播放器对象。
| 返回 | 名称 |
|---|---|
| int | prepare: |
| void | destroy |
| void | setListener: |
| void | setFrameListener: |
| void | enableMixer: |
| void | enableAutoEq:targetLufs: |
| void | setRenderView: |
| void | enableBGMLoop: |
| int | start |
| int | stop |
| void | pause |
| void | resume |
| int | seek: |
| long | getDuration |
| void | setBGMVolume: |
| void | setVoiceVolume: |
- (int)prepare:(NSString *)url;
设置文件路径。支持的文件格式包括 MP3、AAC、M4A、WAV。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | NSString* | 文件路径。 |
返回值
0:成功;≠0:失败。- (void)destroy;
销毁播放器实例。
- (void)setListener:(nullable id <VeLiveMediaPlayerListener>)listener;
设置播放状态的监听。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | nullable id<VeLiveMediaPlayerListener> | 播放状态监听。详情请参见 VeLiveMediaPlayerListener。 |
注意
重复调用本方法,仅最后一次调用生效。
- (void)setFrameListener:(nullable id <VeLiveMediaPlayerFrameListener>)listener;
设置音视频帧回调的监听。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | nullable id<VeLiveMediaPlayerFrameListener> | 音视频帧回调监听。详情请参见 VeLiveMediaPlayerFrameListener。 |
注意
重复调用本方法,仅最后一次调用生效。
- (void)enableMixer:(BOOL)enable;
开启/关闭音频是否混音到直播流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 开启/关闭,默认为 NO。
|
- (void)enableAutoEq:(float)sourceLufs targetLufs:(float)targetLufs;
开启/关闭自动音量均衡。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sourceLufs | float | 源响度。 |
| targetLufs | float | 目标响度。 |
- (void)setRenderView:(UIView *)view;
支持 MP4 格式的视频渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| view | UIView* | 渲染视图。 |
- (void)enableBGMLoop:(BOOL)enable;
设置是否循环播放。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否循环播放。默认为 NO。
|
- (int)start;
开始播放。
返回值
0:成功;≠0:失败。注意
- (int)stop;
停止播放。
返回值
0:成功;≠0:失败。注意
需要在调用 start 开始播放后,调用本方法。
- (void)pause;
暂停播放。
注意
需要在调用 start 开始播放后,调用本方法。
- (void)resume;
恢复播放。
注意
需要在调用 pause 暂停播放后,调用本方法。
- (int)seek:(long)pos;
设置播放进度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | long | 播放时间,单位为 ms。 |
返回值
0:成功;≠0:失败。- (long)getDuration;
获取文件的总时长,单位为 ms。
返回值
>0:成功,音频文件时长;≤0:失败。注意
需要在调用 start 开始播放后,调用本方法。
- (void)setBGMVolume:(float)volume;
设置播放音频的音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | float | 播放音频音量,取值范围为 [0.0,4.0]。 |
- (void)setVoiceVolume:(float)volume;
设置音频采集音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | float | 音频采集音量,取值范围为 [0.0,4.0]。 |
注意
需要在调用 start 开始播放背景音乐后,调用本方法。
@interface VeLiveAudioDevice : NSObject
音频设备管理类。该类提供了用于管理和控制音频设备,包括设置音量、获取当前音量、检查硬件耳返支持情况、开启或关闭耳返的方法。
| 返回 | 名称 |
|---|---|
| void | setVoiceLoudness: |
| float | getVoiceLoudness |
| BOOL | isSupportHardwareEcho |
| void | enableEcho: |
| BOOL | isEnableEcho |
- (void)setVoiceLoudness:(float)level;
设置音量响度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| level | float | 音量响度等级,取值范围为 [0.0,4.0]。 |
- (float)getVoiceLoudness;
获取当前音量响度。
返回值
当前音量响度等级。
- (BOOL)isSupportHardwareEcho;
查询是否支持硬件耳返。
返回值
YES:支持;NO:不支持。- (void)enableEcho:(BOOL)enable;
是否开启耳返功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 耳返功能开关。默认值为 NO。
|
注意
需要在调用 startAudioCapture: 启动音频采集后,调用本方法。
- (BOOL)isEnableEcho;
获取当前耳返开启状态。
返回值
YES:开启;NO:关闭。注意
需要在调用 startAudioCapture: 启动音频采集后,调用本方法。
@interface VeLiveMixerManager : NSObject
音视频混流器管理对象。支持添加/移除音视频流、发送自定义音视频帧、更新混流布局等。
- (int)addVideoStream;
添加一路需要混流的视频流到混流器中。
返回值
视频流 ID。
- (void)removeVideoStream:(int)streamId;
从混流器中移除一路非主路的视频流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamId | int | 需要移除的非主路视频流 ID。 |
- (int)addAudioStream;
添加一路音频流到混流器中。
返回值
音频流 ID。
- (int)addAudioStream:(VeLiveAudioMixType)type;
添加一路音频流到混流器中,并指定混流类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveAudioMixType | 混流类型,详情请参见 VeLiveAudioMixType。 |
返回值
音频流 ID。
- (void)removeAudioStream:(int)streamId;
从混流器中移除一路非主路的音频流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamId | int | 需要移除的非主路音频流 ID。 |
- (void)setAudioStream:(int)streamId volume:(float)volume;
设置指定混流音频的音量。当你将 VeLiveAudioMixType 设置为 VeLiveAudioMixPlayAndPush 时,该方法同时控制该路音频在拉流端和本地的播放音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamId | int | 非主路音频流 ID。 |
| volume | float | 音量大小,范围为 [0.0,4.0]。 |
- (int)getOriginVideoStream;
获取主路视频流 ID。
- (int)getOriginAudioStream;
获取主路音频流 ID。
- (int)getAppAudioStream;
获取屏幕推流 App 的音频流 ID。
- (void)sendCustomVideoFrame:(VeLiveVideoFrame *)frame streamId:(int)streamId;
发送指定混流 ID 的自定义视频帧数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VeLiveVideoFrame* | 自定义的视频帧,详情请参见 VeLiveVideoFrame。 |
| streamId | int | 需要混流的视频流 ID。 |
- (void)sendCustomAudioFrame:(VeLiveAudioFrame *)frame streamId:(int)streamId;
发送指定混流 ID 的自定义音频帧数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VeLiveAudioFrame* | 自定义的音频帧,详情请参见 VeLiveAudioFrame。 |
| streamId | int | 混流的音频流 ID。 |
- (void)updateStreamMixDescription:(VeLiveStreamMixDescription *)mixDescription;
更新音视频混流的布局。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixDescription | VeLiveStreamMixDescription* | 新的音视频混流布局,详情请参见 VeLiveStreamMixDescription。 |
@interface VeLivePusher (ScreenCapture)
推流引擎类。
| 返回 | 名称 |
|---|---|
| void | startScreenCapture: |
| void | stopScreenCapture |
| void | pauseScreenCapture |
| void | resumeScreenCapture |
- (void)startScreenCapture:(NSString *)applicationGroupIdentifier;
开启屏幕采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| applicationGroupIdentifier | NSString* | iOS app group 标识符。 |
- (void)stopScreenCapture;
停止屏幕采集。
注意
该方法用于结束当前屏幕采集流程,并释放相关资源。调用本方法后,pauseScreenCapture 和 resumeScreenCapture 将不再生效。
- (void)pauseScreenCapture;
暂停屏幕采集。
注意
调用该方法后,屏幕采集将暂停输出数据,但不会销毁内部资源。您可通过 resumeScreenCapture 来恢复采集。如果当前采集已经停止或尚未开始,调用本方法不会产生任何效果。
- (void)resumeScreenCapture;
恢复屏幕采集。
注意
在调用 pauseScreenCapture 暂停后,通过本方法可以恢复屏幕采集输出。如果屏幕采集已经停止或尚未开始,调用本方法不会产生任何效果。
@interface VeLiveVideoEffectManager : NSObject
视频特效管理对象。用于管理和设置视频特效,包括美颜、美形、美体、美妆、滤镜等。
- (int)setupWithConfig:(VeLiveVideoEffectLicenseConfiguration *)config;
视频特效许可证配置,用于初始化视频特效管理对象。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | VeLiveVideoEffectLicenseConfiguration* | 特效初始化配置,详情请参见 VeLiveVideoEffectLicenseConfiguration。 |
返回值
0:调用成功;-1:调用失败。- (void)updateLicense:(void (^)(int result, NSString *_Nullable message))completion;
在许可证过期后,可调用该方法更新 License,本方法仅对在线 License 有效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| completion | void(^)(int result, NSString* message) | 结果回调信息。 |
注意
- (int)setAlgoModelPath:(NSString *)path;
设置特效算法模型包的路径。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | NSString* | 特效算法模型包的路径。 |
返回值
0:调用成功;-1:调用失败。注意
需要通过调用 setupWithConfig: 设置视频特效许可证后调用。
- (int)setEnable:(BOOL)enable;
创建/销毁特效引擎。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 是否创建特效引擎。默认为 NO。
|
返回值
0:调用成功;-1:调用失败。注意
EffectManager 销毁而销毁。如果您对性能有较高要求,也可以在不使用特效相关功能时,调用该方法销毁特效引擎;- (int)setComposeNodes:(nullable NSArray<NSString *> *)nodes;
设置视频特效组合。支持设置 ComposeMakeup.bundle 中的功能,包括美颜、美形、美体、美妆等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| nodes | nullable NSArray<NSString*>* | 视频特效素材包路径数组。 |
返回值
0:调用成功;-1:调用失败。注意
- (int)appendComposeNodes:(NSArray<NSString *> *)nodes;
调用本方法,会在 setComposeNodes: 设置的视频特效组合的基础上叠加特效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| nodes | NSArray<NSString*>* | 视频特效素材包路径数组。 |
返回值
0:调用成功;-1:调用失败。注意
需要在调用 setEnable: 创建特效引擎后,调用本方法。
- (int)removeComposeNodes:(NSArray<NSString *> *)nodes;
调用本方法,可移除调用 setComposeNodes: 和 ppendComposeNodes: 设置的视频特效资源。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| nodes | NSArray<NSString*>* | 视频特效素材包路径数组。 |
返回值
0:调用成功;-1:调用失败。注意
需要在调用 setEnable: 创建特效引擎后,调用本方法。
- (int)updateComposerNodeIntensity:(NSString *)node nodeKey:(NSString *)key intensity:(float)intensity;
设置视频特效强度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| node | NSString* | 视频特效素材包路径。 |
| key | NSString* | 需要设置的素材 key 名称 |
| intensity | float | 需要设置的强度值。取值范围为 [0.0,1.0]。 |
返回值
0:调用成功;-1:调用失败。注意
- (int)setFilter:(nullable NSString *)path;
设置颜色滤镜。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | nullable NSString* | 滤镜资源包绝对路径。 |
返回值
0:调用成功;-1:调用失败。注意
请在调用 setEnable: 开启视频特效后,调用该方法。
- (int)updateFilterIntensity:(float)intensity;
设置已启用的颜色滤镜强度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| intensity | float | 滤镜强度,取值范围为 [0.0,1.0]。 |
返回值
0:调用成功;-1:调用失败。注意
请在调用 setFilter: 设置颜色滤镜后调用。
- (int)setSticker:(nullable NSString *)path;
设置贴纸特效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | nullable NSString* | 贴纸素材包的绝对路径。 |
返回值
0:调用成功;-1:调用失败。注意
请在调用 setEnable: 开启视频特效后,调用该方法。
- (void)setAdvancedFeature:(void (^)(void *handle))callback isGLThread:(BOOL)isGLThread isAsync:(BOOL)isAsync;
智能美化特效(简称 CV)高级接口。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| callback | void(^)(void*handle) | 回调 CV 的 handle。 |
| isGLThread | BOOL | 是否在 GL 线程回调 callback。 |
| isAsync | BOOL | 是否同步执行 callback。 |
注意
请在调用 setEnable: 开启视频特效后,调用该方法,不要在主线程中频繁执行同步操作。
@interface VeLivePusher : NSObject
推流引擎类。
| 返回 | 名称 |
|---|---|
| void | setLogLevel: |
+ (void)setLogLevel:(VeLivePusherLogLevel)level;
设置输出到控制台的日志等级。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| level | VeLivePusherLogLevel | 输出的日志级别,默认值为 VeLivePusherLogLevelNone,表示关闭日志。级别详情请参见 VeLivePusherLogLevel。 |
- (instancetype)initWithConfig:(VeLivePusherConfiguration *)config NS_DESIGNATED_INITIALIZER;
初始化推流器。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | VeLivePusherConfiguration* | 推流配置类。详细信息请参见 VeLivePusherConfiguration。 |
- (void)destroy;
停止采集和推流,并销毁推流器。通常在调用 stopPush 结束推流后调用此方法进行清理。
- (void)setObserver:(nullable id <VeLivePusherObserver>)observer;
设置推流器回调,通过设置回调,监听推流器的推流错误、状态、网络质量、设备、首帧等回调事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | nullable id<VeLivePusherObserver> | 推流器回调对象,详细信息请参见 VeLivePusherObserver。 |
注意
- (void)setStatisticsObserver:(nullable id <VeLivePusherStatisticsObserver>)observer interval:(int)interval;
设置推流器周期性回调,用于定期获取推流状态信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | nullable id<VeLivePusherStatisticsObserver> | 推流器周期性回调对象,详细信息请参见 VeLivePusherStatisticsObserver。 |
| interval | int | 周期性回调的时间间隔,单位为 s,默认值为 5。 |
注意
- (int)addVideoFrameListener:(id <VeLiveVideoFrameListener>)listener;
添加视频帧的监听回调,用于获取推流器输出的视频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | id<VeLiveVideoFrameListener> | 视频帧的监听回调,详细信息请参见 VeLiveVideoFrameListener。 |
返回值
0:成功;≠0:失败。- (int)removeVideoFrameListener:(id <VeLiveVideoFrameListener>)listener;
移除已添加的视频帧监听回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | id<VeLiveVideoFrameListener> | 视频帧的监听回调,详细信息请参见 VeLiveVideoFrameListener。 |
返回值
0:成功;<0:失败。注意
如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。
- (int)addAudioFrameListener:(id <VeLiveAudioFrameListener>)listener;
添加音频帧的监听回调,用于获取推流器输出的音频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | id<VeLiveAudioFrameListener> | 音频帧监听回调,详细信息请参见 VeLiveAudioFrameListener。 |
返回值
0:成功;<0:失败。- (int)removeAudioFrameListener:(id <VeLiveAudioFrameListener>)listener;
移除已添加的音频帧监听回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | id<VeLiveAudioFrameListener> | 音频帧的监听回调,详细信息请参见 VeLiveAudioFrameListener。 |
返回值
0:成功;<0:失败。注意
如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。
- (int)setScreenCaptureObserver:(id <VeLiveScreenCaptureStatusObserver>)observer;
添加屏幕采集的监听。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | id<VeLiveScreenCaptureStatusObserver> | 录屏推流事件监听器。详情见 VeLiveScreenCaptureStatusObserver。 |
返回值
0:成功;<0:失败。注意
如果没有添加过此监听回调或者监听回调已被移除,调用此方法将返回失败。
- (void)setRenderView:(nullable UIView *)view;
设置本地预览视图。如您对采集到的画面进行了美颜等处理,View 中显示的是美颜后的画面。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| view | nullable UIView* | 本地预览视图。 |
- (void)setRenderFillMode:(VeLivePusherRenderMode)fillMode;
设置本地预览填充模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| fillMode | VeLivePusherRenderMode | 本地预览填充模式,默认值为 VeLivePusherRenderModeHidden,即视频帧自适应画布的填充模式,详细信息请参见 VeLivePusherRenderMode。 |
- (void)setVideoMirror:(VeLiveVideoMirrorType)type enable:(BOOL)enable;
开启/关闭镜像。该方法可用于配置预览和推流画面是否镜像。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveVideoMirrorType | 镜像类型,详细信息请参见 VeLiveVideoMirrorType。 |
| enable | BOOL | 是否开启镜像。
|
- (BOOL)isMirror:(VeLiveVideoMirrorType)mirrorType captureType:(VeLiveVideoCaptureType)captureType;
获取指定镜像类型和采集类型下的视频镜像状态。适用于主播需要了解当前镜像状态的场景,例如直播前确认预览画面是否符合预期。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorType | VeLiveVideoMirrorType | 镜像类型。详细信息请参见 VeLiveVideoMirrorType。 |
| captureType | VeLiveVideoCaptureType | 视频采集类型。详细信息请参见 VeLiveVideoCaptureType。 |
返回值
视频镜像状态。
YES:已开启镜像。NO:未开启镜像。- (void)startPush:(NSString *)url;
开始推流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | NSString* | 推流地址,用于将直播流推送到目标服务器。 |
- (void)startPushWithUrls:(NSArray<NSString *> *)urls;
开始推流,支持备用推流地址。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| urls | NSArray<NSString*>* | 推流地址列表,包含一个或多个推流地址。 |
注意
当数组中第一个推流地址不可用时,会自动切换到后面的备用推流地址继续推流。
- (void)stopPush;
停止推流。
注意
停止推流后,可以通过调用 startPush: 或 startPushWithUrls: 方法重新开始推流。
- (BOOL)isPushing;
当前是否正在推流中,可用来查询推流器的当前状态。
返回值
是否正在推流。
YES:正在推流中;NO:已经停止推流。- (void)startVideoCapture:(VeLiveVideoCaptureType)type;
开始视频采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveVideoCaptureType | 视频采集类型,详细信息请参见 VeLiveVideoCaptureType。 |
注意
调用该接口后,可以通过调用接口 stopVideoCapture 停止视频采集。
- (void)stopVideoCapture;
停止视频采集。
注意
调用该接口后,可以通过调用接口 startVideoCapture: 开始视频采集。
- (void)switchVideoCapture:(VeLiveVideoCaptureType)type;
切换视频采集类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveVideoCaptureType | 视频采集类型,详细信息请参见 VeLiveVideoCaptureType。 |
注意
该接口必须在调用接口 startVideoCapture: 后调用才能生效。
- (void)startAudioCapture:(VeLiveAudioCaptureType)type;
开始音频采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveAudioCaptureType | 音频采集类型,详细信息请参见 VeLiveAudioCaptureType。 |
注意
调用该接口后,可以通过调用接口 [stopAudioCapture 停止音频采集。
- (void)stopAudioCapture;
停止音频采集。
注意
调用该接口后,可以通过调用接口 startAudioCapture: 开始音频采集。
- (void)switchAudioCapture:(VeLiveAudioCaptureType)type;
切换音频采集类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VeLiveAudioCaptureType | 音频采集类型,详细信息请参见 VeLiveAudioCaptureType。 |
注意
该接口必须在调用接口 startAudioCapture: 后调用才能生效。
- (VeLiveVideoCaptureType)getCurrentVideoCaptureType;
获取当前视频采集类型。
返回值
视频采集类型,详细信息请参见 VeLiveVideoCaptureType。
- (VeLiveAudioCaptureType)getCurrentAudioCaptureType;
获取当前音频采集类型。
返回值
音频采集类型,详细信息请参见 VeLiveAudioCaptureType。
- (void)updateCustomImage:(UIImage *)image;
自定义静态图,适用于静态图推流采集类型。使用该接口时,需要将视频采集类型设置为 VeLiveVideoCaptureCustomImage,您可调用 startVideoCapture: 方法,将 VeLiveVideoCaptureType 设置为 VeLiveVideoCaptureCustomImage。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| image | UIImage* | 静态图片,用于在静态图推流采集类型下设置静态图。 |
- (void)setMute:(BOOL)mute;
设置静音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | BOOL | 是否设置为静音。默认为 NO。
|
- (BOOL)isMute;
当前是否是静音状态。
返回值
YES:当前是静音状态;NO:当前非静音状态。- (void)setVideoEncoderConfiguration:(VeLiveVideoEncoderConfiguration *)config;
设置推流视频编码参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | VeLiveVideoEncoderConfiguration* | 推流视频参数,支持设置推流视频分辨率、编码格式、目标码率和视频 GOP 大小等信息。详情请参见 VeLiveVideoEncoderConfiguration。 |
注意
该接口可在推流开始前或开始后调用。
- (void)setAudioEncoderConfiguration:(VeLiveAudioEncoderConfiguration *)config;
设置推流音频编码参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | VeLiveAudioEncoderConfiguration* | 推流音频编码参数,详情请参见 VeLiveAudioEncoderConfiguration。 |
注意
该接口需要在 startPush: 或 startPushWithUrls: 方法之前调用。
- (void)startFileRecording:(NSString *)path config:(VeLiveFileRecorderConfiguration *)config listener:(id <VeLiveFileRecordingListener>)listener;
开始本地文件录制。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| path | NSString* | 录制文件保存路径,不能为空。 |
| config | VeLiveFileRecorderConfiguration* | 文件录制设置,详情请参见 VeLiveFileRecorderConfiguration。 |
| listener | id<VeLiveFileRecordingListener> | 本地文件录制的监听,详情请参见 VeLiveFileRecordingListener。 |
- (void)stopFileRecording;
停止本地文件录制。
注意
该接口需要在 startFileRecording 方法之后调用。
- (VeLiveCameraDevice *)getCameraDevice;
获取相机设备管理对象 VeLiveCameraDevice。通过设备管理,您可以使用以下功能。
返回值
相机设备管理对象 VeLiveCameraDevice。
注意
该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureFrontCamera 或 VeLiveVideoCaptureBackCamera。
- (VeLiveAudioDevice *)getAudioDevice;
获取音频模块管理对象。
返回值
音频模块管理对象 VeLiveAudioDevice。
注意
该接口需要在 startAudioCapture: 方法中设置 VeLiveAudioCaptureType 为 VeLiveAudioCaptureMicrophone。
- (VeLiveMixerManager *)getMixerManager;
获取混流管理对象。
返回值
混流管理对象 VeLiveMixerManager。
- (VeLiveVideoEffectManager *)getVideoEffectManager;
获取视频特效管理对象 VeLiveVideoEffectManager。通过视频特效管理,您可以使用以下功能。
返回值
视频特效管理对象 VeLiveVideoEffectManager。
注意
该接口需要集成智能美化特效 SDK 后才能使用。
- (VeLiveMediaPlayer *)createPlayer;
创建播放器。
返回值
播放器管理对象 VeLiveMediaPlayer。
- (void)setVideoFrameFilter:(nullable id <VeLiveVideoFrameFilter>)filter;
自定义视频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| filter | nullable id<VeLiveVideoFrameFilter> | 视频帧滤镜对象 VeLiveVideoFrameFilter。 |
- (void)setAudioFrameFilter:(nullable id <VeLiveAudioFrameFilter>)filter;
自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| filter | nullable id<VeLiveAudioFrameFilter> | 音频帧滤镜对象 VeLiveAudioFrameFilter。 |
- (void)setOrientation:(UIInterfaceOrientation)orientation;
设置推流视频帧朝向。默认为竖屏推流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| orientation | UIInterfaceOrientation | 视频帧朝向。 |
- (int)setWatermark:(nullable UIImage *)image x:(float)x y:(float)y scale:(float)scale;
设置推流水印。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| image | nullable UIImage* | 水印图片。取值为 null 时,表示禁用水印。 |
| x | float | 水印的水平偏移量,即水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0.0,1.0]。 |
| y | float | 水印的垂直偏移量,即水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0.0,1.0]。 |
| scale | float | 水印图片的缩放比例,取值范围为 [0.0,1.0]。 |
返回值
0:水印设置成功;<0:水印设置失败。- (void)snapshot:(id <VeLiveSnapshotListener>)listener;
视频截图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| listener | id<VeLiveSnapshotListener> | 截图监听对象,详情请参见 VeLiveSnapshotListener。 |
- (int)sendSeiMessage:(NSString *)key value:(nullable id)value repeat:(int)repeat isKeyFrame:(BOOL)isKeyFrame allowsCovered:(BOOL)allowsCovered;
通过视频帧发送 SEI 消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | NSString* | SEI 消息为 JSON 格式的字符串。此参数为 JSON 结构中的 Key。 |
| value | nullable id | SEI 消息为 JSON 格式的字符串。此参数为 JSON 结构中的 Value。 |
| repeat | int | 消息发送重复的次数。例如,repeat 取值为 20,isKeyFrame 取值为 YES,则会在调用该方法后连续 20 个关键帧中添加 SEI 消息。 |
| isKeyFrame | BOOL | 是否仅在关键帧中包含 SEI 消息。
|
| allowsCovered | BOOL | 是否允许覆盖。
|
返回值
0:成功;<0:失败。注意
switchVideoCapture(),将采集类型切换为 VeLiveVideoCaptureCustomImage、VeLiveVideoCaptureLastFrame 或 VeLiveVideoCaptureDummyFrame,以确保 SEI 消息能够正常发送。switchVideoCapture(),并将采集类型切换为 VeLiveVideoCaptureCustomImage、VeLiveVideoCaptureLastFrame 或 VeLiveVideoCaptureDummyFrame,以保证 SEI 消息的发送。- (int)pushExternalVideoFrame:(VeLiveVideoFrame *)frame;
推送外部视频帧数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VeLiveVideoFrame* | 视频帧的数据信息,详情请参见 VeLiveVideoFrame。 |
返回值
0:成功;<0:失败。注意
该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureExternal。
- (int)pushExternalVideoEncodeFrame:(VeLiveVideoEncodeFrame *)encodeFrame;
推送外部视频编码数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encodeFrame | VeLiveVideoEncodeFrame* | 视频编码帧的数据信息,详情请参见 VeLiveVideoEncodeFrame。 |
返回值
0:成功;<0:失败。注意
该接口需要在 startVideoCapture: 方法中设置 VeLiveVideoCaptureType 为 VeLiveVideoCaptureFrontCamera 或 VeLiveVideoCaptureExternal。
- (int)pushExternalAudioFrame:(VeLiveAudioFrame *)frame;
推送外部音频帧数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VeLiveAudioFrame* | 外部音频数据。详情请参见 VeLiveAudioFrame。 |
返回值
0:成功;<0:失败。注意
该接口需要在 startAudioCapture: 方法中设置 VeLiveAudioCaptureType 为 VeLiveAudioCaptureExternal。
- (int)setProperty:(NSString *)key value:(id)value;
高级配置。您可通过提交工单联系技术支持,了解配置方法。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | NSString* | 推流高级配置为 JSON 格式的字符串,此参数为 JSON 结构中的 Key。 |
| value | id | 推流高级配置为 JSON 格式的字符串,此参数为 JSON 结构中的 Value。建议传入 NSDictionary 或者 NSString 对象。 |
返回值
0:成功;-1:失败,参数错误。- (void)requestIDRFrame;
强制请求 IDR 帧,发起请求以编码一个新的 IDR 帧。
注意
该接口需要在调用 startPush: 或 startPushWithUrls: 方法之后调用。
- (void)setEGLVersion:(int)version;
设置 opengl 的版本号,默认值为 3。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| version | int | opengl 版本号,支持的取值包括 2 和 3,分别对应 OpenGL 2.0 和 3.0 版本。 |
- (EAGLContext *)getEGLContext;
获取 EAGL 的上下文,这是在多线程环境下用于共享的上下文。
返回值
EAGL 的上下文。