VHallLivePublish.h 发直播

1.发直播属性

  • 用来显示摄像头拍摄内容的View
/**
 *  用来显示摄像头拍摄内容的View
 */
@property (nonatomic,strong,readonly)UIView * displayView;
  • 代理
/**
 *  代理
 */
@property (nonatomic,weak)id <VHallLivePublishDelegate> delegate;

  • 设置静音,开始直播后设置有效
/**
 *  设置静音,开始直播后设置有效
 */
@property (assign,nonatomic)BOOL isMute;
  • 判断用户使用是前置还是后置摄像头
/**
 *  判断用户使用是前置还是后置摄像头
 */
@property (nonatomic,assign,readonly)AVCaptureDevicePosition captureDevicePosition;
  • 当前推流状态
/**
 *  当前推流状态
 */
@property (assign,nonatomic,readonly)BOOL isPublishing;

2.初始化直播引擎

直播推流设置: VHPublishConfig* config = [VHPublishConfig configWithType:VHPublishConfigTypeDefault];

/**
 *  初始化
 *  @param config  config参数
 */
- (instancetype)initWithConfig:(VHPublishConfig*)config;

参数说明:@param config VHPublishConfig

3.开始视频采集 显示视频预览

//开始视频采集 显示视频预览
- (BOOL)startVideoCapture;

4.停止视频采集 关闭视频预览

//停止视频采集 关闭视频预览
- (BOOL)stopVideoCapture;

5.开始发起直播

/**
 *  开始发起直播
 *  @param param
 *  param[@"id"]           = 活动Id 必传
 *  param[@"access_token"] = 必传
 */
- (void)startLive:(NSDictionary*)param;

6.结束直播

/**
 * 结束直播
 * 与startLive成对出现,如果调用startLive,则需要调用stopLive以释放相应资源
 */
- (void)stopLive;

7.断开推流的连接,注意app进入后台时要手动调用此方法 回到前台要reconnect重新直播

/**
 *  断开推流的连接,注意app进入后台时要手动调用此方法 回到前台要reconnect重新直播
 */
- (void)disconnect;

8.重连流

/**
 *  重连流
 */
-(void)reconnect;

9.切换摄像头

/**
 *  切换摄像头
 *  @return 是否切换成功
 */
- (BOOL)swapCameras:(AVCaptureDevicePosition)captureDevicePosition;

10.手动对焦

//手动对焦
-(void)setFoucsFoint:(CGPoint)newPoint;

11.变焦

/**
 *  变焦
 *  @param zoomSize 变焦的比例
 */
- (void)captureDeviceZoom:(CGFloat)zoomSize;

12.设置闪关灯的模式

/**
 * 设置闪关灯的模式
 */
- (BOOL)setDeviceTorchModel:(AVCaptureTorchMode)captureTorchMode;

13.销毁初始化数据

/**
 *  销毁初始化数据
 */
- (void)destoryObject;

14.设置音频增益大小

/**
 设置音频增益大小,注意只有当开启噪音消除时可用,开始直播后设置有效
 
 @param size 音频增益的大小 [0.0,1.0]
 */
- (void)setVolumeAmplificateSize:(float)size;

15.本地相机预览填充模式,开始直播后设置有效

/**
 *  本地相机预览填充模式,开始直播后设置有效
 */
- (void)setContentMode:(VHRTMPMovieScalingMode)contentMode;

16.美颜参数设置

/**
*  美颜参数设置
*  VHPublishConfig beautifyFilterEnable为YES时设置生效 根据具体使用情况微调
*  @param beautify   磨皮   默认 4.0f  取值范围[1.0, 10.0]  10.0 正常图片没有磨皮
*  @param brightness 亮度   默认 1.150f 取值范围[0.0, 2.0]  1.0 正常亮度
*  @param saturation 饱和度 默认 1.0f  取值范围[0.0, 2.0]  1.0 正常饱和度
*  @param sharpness  锐化   默认 0.1f  取值范围[-4.0,4.0] 0.0 正常锐化
*/
- (void)setBeautify:(CGFloat)beautify Brightness:(CGFloat)brightness Saturation:(CGFloat)saturation Sharpness:(CGFloat)sharpness;

17.发直播事件响应 1、添加代理事件

  • 采集到第一帧的回调
  • @param image 第一帧的图片
-(void)firstCaptureImage:(UIImage)image; 
  • 发起直播时的状态
  • @param liveStatus 直播状态 查看 文档中发直播枚举类型
  • @param info 直播状态对应信息,字典格式 {@"code":xx,@"content":xxx}
  • code:状态码/错误码,如枚举值(0,1,…)content:对应的状态或错误说明,如播放缓冲开始、播放缓冲结束等
-(void)publishStatus:( VHLiveStatus)liveStatus withInfo:(NSDictionary*)info; 当liveStatus == VHLiveStatusPushConnectSucceed时,content代表出错原因

错误码

错误码 详情
4001 握手失败
4002 链接vhost/app失败
4003 网络断开 (预留,暂时未使用)
4004 无效token
4005 不再白名单中
4006 在黑名单中
4007 流已经存在
4008 流被禁掉 (预留,暂时未使用)
4009 不支持的视频分辨率(预留,暂时未使用)
4010 不支持的音频采样率(预留,暂时未使用)
4011 欠费