| 属性 | 属性描述 |
|---|---|
| delegate | 代理 |
| displayView | 用来显示摄像头拍摄内容的View |
| isMute | 设置静音,开始直播后设置有效 |
| captureDevicePosition | 获取用户使用是前置还是后置摄像头 |
| isPublishing | 获取当前推流状态 |
| VHPublishConfig | 推流配置参数 |
| 方法 | 方法描述 |
|---|---|
| initWithConfig | 初始化 |
| initWithConfigV2 | 初始化V2版本 |
| startVideoCapture | 开始视频采集 |
| stopVideoCapture | 停止视频采集 |
| startLive | 开始发起直播 |
| stopLive | 结束直播 |
| disconnect | 断开推流的连接 |
| reconnect | 重连流 |
| swapCameras | 切换摄像头 |
| setFoucsFoint | 手动对焦 |
| captureDeviceZoom | 变焦 |
| setDeviceTorchModel | 设置闪关灯的模式 |
| setVolumeAmplificateSize | 设置音频增益大小 |
| setContentMode | 修改本地相机预览填充模式 |
| camVidMirror | 镜像摄像头 |
| destoryObject | 销毁初始化数据 |
| 方法 | 方法描述 |
|---|---|
| publishStatus | 发起直播时的状态 |
| firstCaptureImage | 采集到第一帧的回调 |
| webinarInfo | 活动相关信息回调 |
- (instancetype)initWithConfig:(VHPublishConfig*)config;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| config | 是 | VHPublishConfig | 具体包含的参数参考地址 |
// 直播推流配置信息
VHPublishConfig* config = [VHPublishConfig configWithType:VHPublishConfigTypeDefault];
config.pushType = VHStreamTypeVideoAndAudio; // 默认视频直播
// 初始化
VHallLivePublish * livePublish = [[VHallLivePublish alloc] initWithConfig:config];
[livePublish startVideoCapture];- (instancetype)initWithV2Config:(VHPublishConfig*)config andvanceBeautify:(Class)module licenseUrl:(NSString*)licenseUrl licenseKey:(NSString*)licenseKey handleError:(void(^)(NSError* error)handle);| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| config | 是 | VHPublishConfig | 具体包含的参数参考地址 |
| andvanceBeautify | 是 | 美颜类 | 具体包含的参数参考地址 |
| licenseUrl | 是 | V2直播licenseUrl | 联系技术支持了解开通详情 |
| licenseKey | 是 | V2直播licenseKey | 联系技术支持了解开通详情 |
| handle | 是 | 回调函数 | 具体包含的参数参考地址 |
// 直播推流配置信息
VHPublishConfig* config = [VHPublishConfig configWithType:VHPublishConfigTypeDefault];
config.pushType = VHStreamTypeVideoAndAudio; // 默认视频直播
// 初始化
self.beautifyKit=[VHBeautifyKit beautifyManagerWidthModuleClass:[VHBFURender class] faceBundlePaht:@""];
VHallLivePublish * livePublish = [[VHallLivePublish alloc] initWithV2Config:config andvanceBeautify:[self.beautifyKit currentModule] licenseUrl:@"" licenseKey:@""];
[livePublish startVideoCapture];显示视频预览
- (BOOL)startVideoCapture;// 开始视频采集,并显示预览界面
[livePublish startVideoCapture];关闭视频预览
- (BOOL)stopVideoCapture;// 停止视频采集,关闭视频预览
[livePublish stopVideoCapture];关闭视频预览
- (BOOL)stopVideoCaptureV2;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| image | 是 | UIImage | 使用图片替换摄像头画面 |
// 停止视频采集,关闭视频预览
[livePublish stopVideoCapture:image];- (void)startLive:(NSDictionary*)param;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| param | 是 | 字典 | 活动基础信息,包含以下参数 |
| param[@"id"] | 是 | 123456789 | 活动Id,必传 |
| param[@"nickname"] | 否 | VHPublishConfig | 发起直播更改主播昵称,非必传(v6.0新增) |
NSMutableDictionary * param = [NSMutableDictionary dictionary];
param = [[NSMutableDictionary alloc]init];
param[@"id"] = @"123456789";
param[@"nickname"] = @"张三";
[livePublish startLive:param];接口API 结束直播 与startLive成对出现,如果调用startLive,则需要调用stopLive以释放相应资源
- (void)stopLive;[livePublish stopLive];断开推流的连接,注意app进入后台时要手动调用此方法 回到前台要reconnect重新直播
- (void)disconnect;[livePublish disconnect];恢复推流
- (void)reconnect;[livePublish reconnect];- (BOOL)swapCameras:(AVCaptureDevicePosition)captureDevicePosition;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| captureDevicePosition | 是 | 前置:AVCaptureDevicePositionFront 后置:AVCaptureDevicePositionBack | 前置还是后置 |
[livePublish swapCameras:AVCaptureDevicePositionFront];- (void)setFoucsFoint:(CGPoint)newPoint;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| newPoint | 是 | CGPointMake(2, 2) | 坐标 |
[livePublish setFoucsFoint:CGPointMake(2, 2)];- (void)captureDeviceZoom:(CGFloat)zoomSize;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| zoomSize | 是 | 0.8 | 变焦的比例 |
[livePublish captureDeviceZoom:0.8];- (BOOL)setDeviceTorchModel:(AVCaptureTorchMode)captureTorchMode;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| captureTorchMode | 是 | 打开:AVCaptureTorchModeOn 关闭:AVCaptureTorchModeOff 自动:AVCaptureTorchModeAuto | 闪光灯模式 |
[livePublish setDeviceTorchModel:AVCaptureTorchModeOn];- (void)setVolumeAmplificateSize:(float)size;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| size | 是 | 1 | 音频增益的大小 [0.0,1.0] |
[livePublish setVolumeAmplificateSize:1];- (void)setContentMode:(VHRTMPMovieScalingMode)contentMode;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| contentMode | 是 | 正常:VHRTMPMovieScalingModeNone 等比缩放:VHRTMPMovieScalingModeAspectFit 填充 :VHRTMPMovieScalingModeAspectFill | 本地相机预览填充模式,开始直播后设置有效 |
[livePublish setContentMode:VHRTMPMovieScalingModeAspectFill];- (void)camVidMirror:(BOOL)mirror;| 参数名称 | 是否必须 | 示例 | 备注 |
|---|---|---|---|
| mirror | 是 | YES | YES:镜像 NO:不镜像 |
[self.livePublish camVidMirror:mirror];- (void)destoryObject;[livePublish destoryObject];代理APi
- (void)publishStatus:(VHLiveStatus)liveStatus
withInfo:(NSDictionary*)info;| 参数名称 | 备注 |
|---|---|
| liveStatus | 直播状态 |
| info | 详细信息,字典结构:{code:错误码,content:错误信息} |
| 参数名称 | 备注 |
|---|---|
| VHLiveStatusNone | 默认 |
| VHLiveStatusPushConnectSucceed | 直播连接成功 |
| VHLiveStatusPushConnectError | 直播连接失败 |
| VHLiveStatusParamError | 参数错误 |
| VHLiveStatusSendError | 直播发送数据错误 |
| VHLiveStatusUploadSpeed | 直播上传速率 |
| VHLiveStatusAudioRecoderError | 音频采集失败,提示用户查看权限或者重新推流,切记此事件会回调多次,直到音频采集正常为止 |
| VHLiveStatusUploadNetworkException | 发起端网络环境差 |
| VHLiveStatusUploadNetworkOK | 发起端网络环境恢复正常 |
| VHLiveStatusGetUrlError | 获取推流地址失败 |
| VHLiveStatusDirectorError | 云导播机位推流失败 |
-(void)firstCaptureImage:(UIImage*)image;| 状态名称 | 备注 |
|---|---|
| image | 第一帧的图片 |
- (void)publish:(VHallLivePublish *)publishObject
webinarInfo:(VHWebinarInfo *)webinarInfo;| 参数名称 | 备注 |
|---|---|
| publishObject | 推流对象 |
| webinarInfo | 活动相关信息 (注意:此接口为v6.0新增,仅限新版控制台(v3及以上)创建 的活动使用,否则不会回调) |