|
// 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
|