2021-04-02 1.ZigBee 丰林同样更新SDK。
| | |
| | | #import <ESVideoPhoneSDk/ESError.h> |
| | | #import "ESvideoVideoIntercomViewController.h" |
| | | #import <Photos/Photos.h> |
| | | #import "AudioSessionHelper.h" |
| | | //#import "AudioSessionHelper.h" |
| | | #import "CBToast.h" |
| | | #import "ESVideo.h" |
| | | |
| | | @interface ESVideoMonitorViewController ()<ESVideoPhoneDelegate> |
| | | |
| | | @property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | //@property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | @property (nonatomic,strong) ESVideoPhone *es; |
| | | @property (nonatomic,assign) BOOL playing; |
| | | @property (nonatomic,assign) BOOL isInterrupt; |
| | |
| | | // NSLog(@"VideoCaptureSession 初始化失败"); |
| | | // } |
| | | // } |
| | | //初始化AudioSession |
| | | _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | [_sessionHelper setAudioSession]; |
| | | // //初始化AudioSession |
| | | // _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | // [_sessionHelper setAudioSession]; |
| | | //添加进入后台,中断等通知 |
| | | [self addObservers]; |
| | | |
| | |
| | | // If media services were reset, and the last start succeeded, restart the session. |
| | | if (error.code == AVErrorMediaServicesWereReset) { |
| | | [_es onStopCapture]; |
| | | [_es startTalk]; |
| | | [_es stopTalk]; |
| | | } |
| | | } |
| | | |
| | |
| | | // } |
| | | |
| | | if(!_isSpeaking){ |
| | | result = [_sessionHelper speaker:YES]; |
| | | // result = [_sessionHelper speaker:YES]; |
| | | [_es resetAudioCaptureIsSpeak:YES]; |
| | | _isSpeaking = YES; |
| | | }else{ |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | _isSpeaking = NO; |
| | | } |
| | | if (result) { |
| | |
| | | #import <AVFoundation/AVFoundation.h> |
| | | #import <ESVideoPhoneSDk/ESVideoPhone.h> |
| | | #import <ESVideoPhoneSDk/ESError.h> |
| | | #import "AudioSessionHelper.h" |
| | | //#import "AudioSessionHelper.h" |
| | | #import <Photos/Photos.h> |
| | | #import <AudioToolbox/AudioToolbox.h> |
| | | #import "ESVideo.h" |
| | |
| | | |
| | | @interface ESvideoVideoIntercomViewController ()<ESVideoPhoneDelegate> |
| | | |
| | | @property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | //@property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | @property (nonatomic,strong) ESVideoPhone *es; |
| | | @property (nonatomic,assign) BOOL playing; |
| | | @property (nonatomic,assign) BOOL isInterrupt; |
| | |
| | | // NSLog(@"VideoCaptureSession 初始化失败"); |
| | | // } |
| | | // } |
| | | //初始化AudioSession |
| | | _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | [_sessionHelper setAudioSession]; |
| | | // //初始化AudioSession |
| | | // _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | // [_sessionHelper setAudioSession]; |
| | | //添加进入后台,中断等通知 |
| | | [self addObservers]; |
| | | |
| | |
| | | NSString *result = nil; |
| | | //听筒状态 插耳塞后拔掉后恢复到默认设置 |
| | | if (sender == nil) { |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | }else{ |
| | | if(!_isSpeaking){ |
| | | result = [_sessionHelper speaker:YES]; |
| | | // result = [_sessionHelper speaker:YES]; |
| | | [_es resetAudioCaptureIsSpeak:YES]; |
| | | _isSpeaking = YES; |
| | | }else{ |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | _isSpeaking = NO; |
| | | } |
| | | } |
| | |
| | | LMPAudioPlayErrorBypassVoiceProcessing = 6,//AudioPlay_打开回声消除功能失败 |
| | | LMPAudioPlayErrorAudioUnitInitialize = 7,//AudioPlay_AudioUnitInitialize失败 |
| | | }; |
| | | //音频重采样,会导致不能发送播放音频。 |
| | | typedef NS_ENUM (NSUInteger, LMPAudioConverterError){ |
| | | LMPAudioConverterErrorGetNew = 0,//GetNew失败 |
| | | LMPAudioConverterErrorRecord = 1,//Record失败 |
| | | }; |
| | | |
| | | @interface ESError : NSObject |
| | | |
| | | @end |
| | | |
| | | |
| | |
| | | @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表示初始化失败。 |
| | | * @return ESVideoPhone 实例,返回nil表示P2P初始化失败。 |
| | | */ |
| | | - (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack; |
| | | //授权后打开音频采集,视频没有权限也可以只音频通话 |
| | | -(BOOL)initAudioCaptureSession; |
| | | //⚠️授权后打开视频采集,音频没有权限建议不要发起通话 |
| | | -(BOOL)initVideoCaptureSession; |
| | | /** |
| | | * 呼叫 |
| | | * |
| | | * @param deviceId 门口机设备ID,这个参数会从后台拉取(一般是个数组其中包含该用户权限拥有的所有门口机) |
| | | */ |
| | | - (void)onCall:(NSString *)deviceId; |
| | | /** |
| | | * 监控 |
| | | * |
| | |
| | | -(void)openTheDoorWithRoomid: (int)roomId; |
| | | //释放资源(delegate释放等) |
| | | -(void)freeSubClass; |
| | | |
| | | //免提播放 听筒播放 互相切换 buffer重制为0,否则有些系统,在听筒模式下不能采集 error-50 |
| | | -(BOOL)resetAudioCaptureIsSpeak:(BOOL)isSpeak; |
| | | |
| | | @end |
| | | |
| | | |
| | |
| | | <dict> |
| | | <key>Headers/ESError.h</key> |
| | | <data> |
| | | 6x23lohs1gRaX2F7raZcezxZt4A= |
| | | pvjBtkhm2U/Y83vkOrTjVeFC1rc= |
| | | </data> |
| | | <key>Headers/ESVideoPhone.h</key> |
| | | <data> |
| | | PXntC+GjEn5A+q23YZHDZYIGj3k= |
| | | kGvbOvS6cBnVsmUHmyi2E6VgP+8= |
| | | </data> |
| | | <key>Info.plist</key> |
| | | <data> |
| | | pac6jrrTIT3Ur/3XHh3CoCOUlnE= |
| | | Zp/dsh9RYNjl/knrzPgFdMIaTIU= |
| | | </data> |
| | | </dict> |
| | | <key>files2</key> |
| | |
| | | <dict> |
| | | <key>hash</key> |
| | | <data> |
| | | 6x23lohs1gRaX2F7raZcezxZt4A= |
| | | pvjBtkhm2U/Y83vkOrTjVeFC1rc= |
| | | </data> |
| | | <key>hash2</key> |
| | | <data> |
| | | y8ReVa9YaZ6fyPjy8EeTl3jbaUadZUYVC0IdLJ/HrgM= |
| | | 18Khpfz8wF7kpRYfu0Hu9nXX8ojPhCddZq9AC5/W4P0= |
| | | </data> |
| | | </dict> |
| | | <key>Headers/ESVideoPhone.h</key> |
| | | <dict> |
| | | <key>hash</key> |
| | | <data> |
| | | PXntC+GjEn5A+q23YZHDZYIGj3k= |
| | | kGvbOvS6cBnVsmUHmyi2E6VgP+8= |
| | | </data> |
| | | <key>hash2</key> |
| | | <data> |
| | | MboPVH5djlpgR//Z7UcRBMEeaakW6FWQbZxlkx4KzaM= |
| | | 0nI6AIHD+V13SkVwTcbXE/eDC2SJLVTIcX2hiIoRtJg= |
| | | </data> |
| | | </dict> |
| | | </dict> |
| | |
| | | B956B462248D28B70093C489 /* Project object */ = { |
| | | isa = PBXProject; |
| | | attributes = { |
| | | LastUpgradeCheck = 1120; |
| | | LastUpgradeCheck = 1220; |
| | | ORGANIZATIONNAME = "陈嘉乐"; |
| | | TargetAttributes = { |
| | | B956B469248D28B70093C489 = { |
| | |
| | | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
| | | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
| | | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
| | | CLANG_WARN_STRICT_PROTOTYPES = YES; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | |
| | | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
| | | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
| | | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
| | | CLANG_WARN_STRICT_PROTOTYPES = YES; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | |
| | | #import <ESVideoPhoneSDk/ESError.h> |
| | | #import "ESvideoVideoIntercomViewController.h" |
| | | #import <Photos/Photos.h> |
| | | #import "AudioSessionHelper.h" |
| | | //#import "AudioSessionHelper.h" |
| | | #import "CBToast.h" |
| | | #import "ESVideo.h" |
| | | |
| | | @interface ESVideoMonitorViewController ()<ESVideoPhoneDelegate> |
| | | |
| | | @property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | //@property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | @property (nonatomic,strong) ESVideoPhone *es; |
| | | @property (nonatomic,assign) BOOL playing; |
| | | @property (nonatomic,assign) BOOL isInterrupt; |
| | |
| | | // NSLog(@"VideoCaptureSession 初始化失败"); |
| | | // } |
| | | // } |
| | | //初始化AudioSession |
| | | _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | [_sessionHelper setAudioSession]; |
| | | // //初始化AudioSession |
| | | // _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | // [_sessionHelper setAudioSession]; |
| | | //添加进入后台,中断等通知 |
| | | [self addObservers]; |
| | | |
| | |
| | | // If media services were reset, and the last start succeeded, restart the session. |
| | | if (error.code == AVErrorMediaServicesWereReset) { |
| | | [_es onStopCapture]; |
| | | [_es startTalk]; |
| | | [_es stopTalk]; |
| | | } |
| | | } |
| | | |
| | |
| | | // } |
| | | |
| | | if(!_isSpeaking){ |
| | | result = [_sessionHelper speaker:YES]; |
| | | // result = [_sessionHelper speaker:YES]; |
| | | [_es resetAudioCaptureIsSpeak:YES]; |
| | | _isSpeaking = YES; |
| | | }else{ |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | _isSpeaking = NO; |
| | | } |
| | | if (result) { |
| | |
| | | #import <AVFoundation/AVFoundation.h> |
| | | #import <ESVideoPhoneSDk/ESVideoPhone.h> |
| | | #import <ESVideoPhoneSDk/ESError.h> |
| | | #import "AudioSessionHelper.h" |
| | | //#import "AudioSessionHelper.h" |
| | | #import <Photos/Photos.h> |
| | | #import <AudioToolbox/AudioToolbox.h> |
| | | #import "ESVideo.h" |
| | |
| | | |
| | | @interface ESvideoVideoIntercomViewController ()<ESVideoPhoneDelegate> |
| | | |
| | | @property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | //@property (nonatomic,strong) AudioSessionHelper *sessionHelper; |
| | | @property (nonatomic,strong) ESVideoPhone *es; |
| | | @property (nonatomic,assign) BOOL playing; |
| | | @property (nonatomic,assign) BOOL isInterrupt; |
| | |
| | | // NSLog(@"VideoCaptureSession 初始化失败"); |
| | | // } |
| | | // } |
| | | //初始化AudioSession |
| | | _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | [_sessionHelper setAudioSession]; |
| | | // //初始化AudioSession |
| | | // _sessionHelper = [[AudioSessionHelper alloc]init]; |
| | | // [_sessionHelper setAudioSession]; |
| | | //添加进入后台,中断等通知 |
| | | [self addObservers]; |
| | | |
| | |
| | | NSString *result = nil; |
| | | //听筒状态 插耳塞后拔掉后恢复到默认设置 |
| | | if (sender == nil) { |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | }else{ |
| | | if(!_isSpeaking){ |
| | | result = [_sessionHelper speaker:YES]; |
| | | // result = [_sessionHelper speaker:YES]; |
| | | [_es resetAudioCaptureIsSpeak:YES]; |
| | | _isSpeaking = YES; |
| | | }else{ |
| | | result = [_sessionHelper speaker:NO]; |
| | | // result = [_sessionHelper speaker:NO]; |
| | | [_es resetAudioCaptureIsSpeak:NO]; |
| | | _isSpeaking = NO; |
| | | } |
| | | } |
| | |
| | | LMPAudioPlayErrorBypassVoiceProcessing = 6,//AudioPlay_打开回声消除功能失败 |
| | | LMPAudioPlayErrorAudioUnitInitialize = 7,//AudioPlay_AudioUnitInitialize失败 |
| | | }; |
| | | //音频重采样,会导致不能发送播放音频。 |
| | | typedef NS_ENUM (NSUInteger, LMPAudioConverterError){ |
| | | LMPAudioConverterErrorGetNew = 0,//GetNew失败 |
| | | LMPAudioConverterErrorRecord = 1,//Record失败 |
| | | }; |
| | | |
| | | @interface ESError : NSObject |
| | | |
| | | @end |
| | | |
| | | |
| | |
| | | @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表示初始化失败。 |
| | | * @return ESVideoPhone 实例,返回nil表示P2P初始化失败。 |
| | | */ |
| | | - (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack; |
| | | //授权后打开音频采集,视频没有权限也可以只音频通话 |
| | | -(BOOL)initAudioCaptureSession; |
| | | //⚠️授权后打开视频采集,音频没有权限建议不要发起通话 |
| | | -(BOOL)initVideoCaptureSession; |
| | | /** |
| | | * 呼叫 |
| | | * |
| | | * @param deviceId 门口机设备ID,这个参数会从后台拉取(一般是个数组其中包含该用户权限拥有的所有门口机) |
| | | */ |
| | | - (void)onCall:(NSString *)deviceId; |
| | | /** |
| | | * 监控 |
| | | * |
| | |
| | | -(void)openTheDoorWithRoomid: (int)roomId; |
| | | //释放资源(delegate释放等) |
| | | -(void)freeSubClass; |
| | | |
| | | //免提播放 听筒播放 互相切换 buffer重制为0,否则有些系统,在听筒模式下不能采集 error-50 |
| | | -(BOOL)resetAudioCaptureIsSpeak:(BOOL)isSpeak; |
| | | |
| | | @end |
| | | |
| | | |
| | |
| | | <dict> |
| | | <key>Headers/ESError.h</key> |
| | | <data> |
| | | 6x23lohs1gRaX2F7raZcezxZt4A= |
| | | pvjBtkhm2U/Y83vkOrTjVeFC1rc= |
| | | </data> |
| | | <key>Headers/ESVideoPhone.h</key> |
| | | <data> |
| | | PXntC+GjEn5A+q23YZHDZYIGj3k= |
| | | kGvbOvS6cBnVsmUHmyi2E6VgP+8= |
| | | </data> |
| | | <key>Info.plist</key> |
| | | <data> |
| | | pac6jrrTIT3Ur/3XHh3CoCOUlnE= |
| | | Zp/dsh9RYNjl/knrzPgFdMIaTIU= |
| | | </data> |
| | | </dict> |
| | | <key>files2</key> |
| | |
| | | <dict> |
| | | <key>hash</key> |
| | | <data> |
| | | 6x23lohs1gRaX2F7raZcezxZt4A= |
| | | pvjBtkhm2U/Y83vkOrTjVeFC1rc= |
| | | </data> |
| | | <key>hash2</key> |
| | | <data> |
| | | y8ReVa9YaZ6fyPjy8EeTl3jbaUadZUYVC0IdLJ/HrgM= |
| | | 18Khpfz8wF7kpRYfu0Hu9nXX8ojPhCddZq9AC5/W4P0= |
| | | </data> |
| | | </dict> |
| | | <key>Headers/ESVideoPhone.h</key> |
| | | <dict> |
| | | <key>hash</key> |
| | | <data> |
| | | PXntC+GjEn5A+q23YZHDZYIGj3k= |
| | | kGvbOvS6cBnVsmUHmyi2E6VgP+8= |
| | | </data> |
| | | <key>hash2</key> |
| | | <data> |
| | | MboPVH5djlpgR//Z7UcRBMEeaakW6FWQbZxlkx4KzaM= |
| | | 0nI6AIHD+V13SkVwTcbXE/eDC2SJLVTIcX2hiIoRtJg= |
| | | </data> |
| | | </dict> |
| | | </dict> |