推流模块
头文件
VHLivePublisher.h
类名
VHLivePublisher
属性
delegate
@property (nonatomic,weak)id <VHLivePublisherDelegate> delegate;
preView
预览界面
/**
* 显示摄像头拍摄内容的View
*/
@property (nonatomic,strong,readonly)UIView * preView;
captureDevicePosition
当前使用摄像头位置
/**
* 判断用户使用是前置还是后置摄像头
*/
@property (nonatomic,assign,readonly)AVCaptureDevicePosition captureDevicePosition;
config
推流配置 VHPublishConfig
/**
* 获取推流参数
*/
@property (nonatomic,strong,readonly)VHPublishConfig* config;
enableMute
静音
/**
* 静音
*/
@property (nonatomic,assign)BOOL enableMute;
videoBitRate
视频码率
/**
* 推流前可设置视频码率
*/
@property (nonatomic,assign)int videoBitRate;
isPublishing
推流状态
/**
* 推流状态
*/
@property (nonatomic,assign,readonly)BOOL isPublishing;
方法
- initWithConfig:
/**
* 初始化
* @param config config参数
*/
- (instancetype)initWithConfig:(VHPublishConfig*)config;
- initWithConfig:videoCapture:audioCapture:
VHPublishConfig IVHVideoCapture IVHAudioCapture
/**
* 初始化
* 高级功能 自定义采集器
* @param config config参数
* @param videoCapture 自定义视频采集器
* @param audioCapture 自定义音频采集器
*/
- (instancetype)initWithConfig:(VHPublishConfig*)config
videoCapture:(id<IVHVideoCapture>)videoCapture
audioCapture:(id<IVHAudioCapture>)audioCapture;
- destoryObject
/**
* 销毁初始化数据,同步销毁,如果感觉销毁太慢,可以开线程去销毁
*/
- (void)destoryObject;
- startCapture
/**
* 开始采集数据 并预览
*/
- (BOOL)startCapture;
- startPublish:accessToken:
/**
* 开始推流
* @param roomID 房间ID
* @param accessToken accessToken
*/
- (BOOL)startPublish:(NSString*)roomID accessToken:(NSString*)accessToken;
- pause
/**
* 暂停推流 如电话接入、进入后台等
*/
- (BOOL)pause;
- resume
/**
* 恢复推流
*/
- (BOOL)resume;
- stopPublish
/**
* 停止推流
*/
- (BOOL)stopPublish;
- stopCapture
/**
* 停止采集数据
*/
- (BOOL)stopCapture;
- switchCamera:
/**
* 切换前后摄像头
* @param captureDevicePosition 后置:AVCaptureDevicePositionBack 前置:AVCaptureDevicePositionFront
* @return 是否切换成功
*/
- (BOOL)switchCamera:(AVCaptureDevicePosition)captureDevicePosition;
- zoomCamera:
/**
* 缩放摄像头
* @param zoomSize 变焦取值范围[1.0 - xx] xx 是系统相机支持最大变焦值
*/
- (BOOL)zoomCamera:(CGFloat)zoomSize;
- focusCameraAtAdjustedPoint:
/**
* 手动对焦
* @param point 对焦点 [x,y] [0.0 - 1.0]
*/
- (BOOL)focusCameraAtAdjustedPoint:(CGPoint)point;
- torchMode:
/**
* 闪光灯开关 前置摄像头时无效
* @param captureTorchMode 闪光灯模式
*/
- (BOOL)torchMode:(AVCaptureTorchMode)captureTorchMode;
代理方法
VHLivePublisherDelegate
- firstCaptureImage:
/**
* 采集到第一帧的回调
* @param image 第一帧的图片
*/
-(void)firstCaptureImage:(UIImage*)image;
- onPublishStatus:info:
/**
* 推流状态回调
* @param status 状态类型
* @param info 状态信息
*/
- (void)onPublishStatus:(VHPublishStatus)status info:(NSDictionary*)info;
- onPublishError:info:
/**
* 错误回调
* @param error 错误类型
* @param info 错误信息@{code:@"" ,content: @""}
*/
- (void)onPublishError:(VHPublishError)error info:(NSDictionary*)info;
结构体
VHPublishStatus
/**
* 推流状态
*/
typedef NS_ENUM(NSInteger, VHPublishStatus) {
VHPublishStatusNone, //默认状态
VHPublishStatusPushConnectSucceed, //直播连接成功
VHPublishStatusUploadSpeed, //直播上传速率
VHPublishStatusUploadNetworkException, //发起端网络环境差
VHPublishStatusUploadNetworkOK //发起端网络环境恢复正常
};
VHPublishError
/**
* 错误状态
*/
typedef NS_ENUM(NSInteger, VHPublishError) {
VHPublishErrorNone, // 默认状态
VHPublishErrorPusherError, // 推流相关错误@{code:"10001" ,content: "xxxxx"}
VHPublishErrorAuthError, // 接口\验证等相关错误
VHPublishErrorParamError, // 参数相关错误
VHPublishErrorCaptureError, // 采集相关错误
};