// ESVideoPhone.h // VideoPhone // // Created by maygion on 2019/3/26. // Copyright © 2019 eTouchSky. All rights reserved. // SDK版本号:1.0.0 测试版1 #import #import typedef void (^ImageCallback)(UIImage *image); @protocol ESVideoPhoneDelegate - (void)getAErrorForESVideoPhone:(NSString *)errorStr type:(NSUInteger) errortype; - (void)getPhoneEvent_UI:(NSString*)phoneEvent; @end @interface ESVideoPhone : NSObject //错误信息 @property(nonatomic,weak) id delegate; ////获取视频截图的block //@property(nonatomic,copy) ImageCallback snapImageCallback; //视频显示的View ⚠️请做非空判断 @property(nonatomic,strong,readonly) UIView* showView; //中断设置 @property (nonatomic,assign,readwrite) BOOL isInterrupt; /** * ESVideoPhone 初始化方法 * 初始化P2P,OpenGL,AudioUnit播放。 * @param frame 生成显示视频的CGRect * @param delegate ESVideoPhoneDelegate代理 * @paramimagecallBack 获取视频截图的block * * @return ESVideoPhone 实例,返回nil表示P2P初始化失败。 */ - (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id)del imagecallBack:(ImageCallback)callBack; //授权后打开音频采集,视频没有权限也可以只音频通话 -(BOOL)initAudioCaptureSession; //⚠️授权后打开视频采集,音频没有权限建议不要发起通话 -(BOOL)initVideoCaptureSession; /** * 呼叫 * * @param deviceId 门口机设备ID,这个参数会从后台拉取(一般是个数组其中包含该用户权限拥有的所有门口机) */ - (void)onCall:(NSString *)deviceId; /** * 监控 * * @param deviceId 门口机设备ID,这个参数会从后台拉取(一般是个数组其中包含该用户权限拥有的所有门口机) */ - (void)onMonitor:(NSString *)deviceId; /** * 接听 * 这个方法会在AppDelegate的通知接口中调用,采用小米推送 * @param deviceId 门口机设备ID,这个参数会从通知中获取由设备ID与单次通话tag拼成(可能会有变动) */ - (void)onReverseCall:(NSString *)deviceId; //接听 - (void)onAccept; //挂断 - (void)onHangup; //打开音频采集与音频播放 -(void)startTalk; //关闭音频采集与音频播放 - (void)stopTalk; //获取视频截图 - (void)onSnap; //打开视频采集 - (void)onStartCapture; //关闭视频采集 - (void)onStopCapture; /** * 开门,结果在ESVideoPhoneDelegate 方法中返回 * * @param roomId 住户的roomid) */ -(void)openTheDoorWithRoomid: (int)roomId; //释放资源(delegate释放等) -(void)freeSubClass; //免提播放 听筒播放 互相切换 buffer重制为0,否则有些系统,在听筒模式下不能采集 error-50 -(BOOL)resetAudioCaptureIsSpeak:(BOOL)isSpeak; @end