1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
//  ESVideoPhone.h
//  VideoPhone
//
//  Created by maygion on 2019/3/26.
//  Copyright © 2019 eTouchSky. All rights reserved.
//  SDK版本号:1.1.0 
 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
 
typedef void (^ImageCallback)(UIImage *image);
 
@protocol ESVideoPhoneDelegate <NSObject>
- (void)getAErrorForESVideoPhone:(NSString *)errorStr type:(NSUInteger) errortype;
- (void)getPhoneEvent_UI:(NSString*)phoneEvent;
@end
 
@interface ESVideoPhone : NSObject
 
//错误信息
@property(nonatomic,weak) id<ESVideoPhoneDelegate> delegate;
////获取视频截图的block
//@property(nonatomic,copy) ImageCallback snapImageCallback;
//视频显示的View ⚠️请做非空判断
@property(nonatomic,strong,readonly) UIView* showView;
//中断设置
@property (nonatomic,assign,readwrite) BOOL isInterrupt;
 
/**
* ESVideoPhone 初始化方法
*
* @param frame 生成显示视频的CGRect
* @param delegate ESVideoPhoneDelegate代理
* @paramimagecallBack 获取视频截图的block
*
*  @return ESVideoPhone 实例,返回nil表示初始化失败。
*/
- (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack;
//授权后打开音频采集,视频没有权限也可以只音频通话
-(BOOL)initAudioCaptureSession;
//⚠️授权后打开视频采集,音频没有权限建议不要发起通话
-(BOOL)initVideoCaptureSession;
/**
* 监控
*
* @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;
@end