////
////  EZVideoTalkViewcontroller.m
////  EZBAVDemo
////
////  Created by kanhaiping on 2018/6/26.
////  Copyright © 2018年 hikvision. All rights reserved.
////
//
//#import "EZVideoTalkViewcontroller.h"
//#import "EZVideoTalkSDK.h"
//#import "EZVideoTalkParam.h"
//#import "UIView+Toast.h"
//#import <AVFoundation/AVFoundation.h>
//#import "EZOpenSDK.h"
//#import "EZDeviceInfo.h"
//#import "GlobalKit.h"
//#import "EzvizWatchServerInfo.h"
//#import "EZTokenKit.h"
//
//@interface EZVideoTalkViewcontroller ()<EZVideoTalkSDKDelegate>
//@property (nonatomic, assign) BOOL bEverOpenSound;
//@property (nonatomic, strong) EZVideoTalkSDK *client;
//
//@property (weak, nonatomic) IBOutlet UIView *localView;
//@property (weak, nonatomic) IBOutlet UIView *remoteView;
//@property (weak, nonatomic) IBOutlet UITextField *roomIDTextField;
//
//@property (nonatomic, strong) EzvizWatchServerInfo *watchServerInfo;
//
//@end
//
//@implementation EZVideoTalkViewcontroller
//
//+ (EZVideoTalkViewcontroller *) videoTalkVC {
//
//    EZVideoTalkViewcontroller *vc = [[NSBundle mainBundle] loadNibNamed:@"EZVideoTalkViewcontroller" owner:nil options:nil].firstObject;
//    return vc;
//}
//
//- (void)viewDidLoad {
//    [super viewDidLoad];
//    // Do any additional setup after loading the view, typically from a nib.
//    UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
//    if (self.view.gestureRecognizers.count <= 0) {
//        [self.view addGestureRecognizer:gesture];
//    }
//
//    self.title = @"Video Talk";
//}
//
//- (void)viewWillAppear:(BOOL)animated {
//    [super viewWillAppear:animated];
//
//    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(stopTalk) name:UIApplicationDidEnterBackgroundNotification object:nil];
//    [self getWatchInfo];
//}
//
//- (void)viewWillDisappear:(BOOL)animated  {
//    [super viewWillDisappear:animated];
//
//    [[NSNotificationCenter defaultCenter] removeObserver:self];
//
//    if (self.client != nil) {
//        [self stopTalk];
//    }
//}
//
//- (void)didReceiveMemoryWarning {
//    [super didReceiveMemoryWarning];
//    // Dispose of any resources that can be recreated.
//}
//
//
//#pragma mark Actions
//
//- (IBAction)createRoomAction:(id)sender {
//
//    [self startTalkWithRoomID:0];
//}
//
//- (IBAction)enterRoomAction:(id)sender {
//
//    if (self.roomIDTextField.text.length <= 0 || [self.roomIDTextField.text integerValue] <= 0) {
//        [self showMessage:@"请输入正确的房间号"];
//        return;
//    }
//
//    [self startTalkWithRoomID:(int32_t)[self.roomIDTextField.text integerValue]];
//
//    [self showMessage:@"加入房间"];
//}
//
//- (IBAction)leaveRoomAction:(id)sender {
//
//    [self stopTalk];
//
//    [self showMessage:@"已离开房间"];
//}
//
//- (void)tapAction:(id)sender {
//
//    [self.roomIDTextField resignFirstResponder];
//}
//
//#pragma mark Helper
//
//- (void)showMessage:(NSString *)message
//{
//    [self.view makeToast:message duration:2.0 position:CSToastPositionCenter];
//}
//
//#pragma mark BAV API
//
//- (void)getWatchInfo {
//
//    __weak typeof(self) weakSelf = self;
//    [EZOpenSDK requestGetWatchServerInfo:self.deviceInfo.deviceSerial completion:^(id watchServerInfo, NSError *error) {
//
//        weakSelf.watchServerInfo = watchServerInfo;
//    }];
//}
//
//- (void)startTalkWithRoomID:(int32_t)roomID
//{
//    if (self.client != nil) {
//        [self.client stop];
//        self.client = nil;
//    }
//
//    EZVideoTalkParam *param = [EZVideoTalkParam new];
//    param.iCltRole = roomID > 0 ? 1 : 0;
//    param.iCltType = 1;
//    param.iOtherCltType = 1;
////    param.iReason = 101;
//    param.iStsPort = self.watchServerInfo.port;
//    param.iRoomId = roomID > 0 ? roomID : 0;
//    param.szOterId = self.deviceInfo.deviceSerial;
//    param.szSelfId = @"1234567891";
//    param.szAuthToken = [EZTokenKit sharedKit].token;
//    param.szStsAddr = self.watchServerInfo.domain;
//
//    [EZVideoTalkSDK setDebugVideoLog:YES];
//    [EZVideoTalkSDK setDebugLogEnable:YES withLogCallback:^(NSString *logStr) {
//        NSLog(@"%@", logStr);
//    }];
//
//    _client = [[EZVideoTalkSDK alloc] initWithParam:param localWindow:self.localView remoteWindow:self.remoteView];
//    _client.delegate = self;
//
//    //    [_client startWithType:EZVideoTalkCaptureVideo | EZVideoTalkCaptureAudio];
//        [_client startWithType:EZVideoTalkCaptureAudio];
//}
//
//- (void)stopTalk
//{
//    [self.client stop];
//    self.client = nil;
//}
//
//#pragma mark EZVideoTalkSDKDelegate
//
//- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedError:(int32_t)errorCode
//{
//    NSLog(@"%s recived errorcode:%d", __func__, errorCode);
//
//    dispatch_async(dispatch_get_main_queue(), ^{
//        [self showMessage:[NSString stringWithFormat:@"BAVClient Error:%d",errorCode]];
//    });
//
//    [self stopTalk];
//}
//
//- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedMessage:(EZVideoTalkMessageType)messageCode msg:(NSString *)msg
//{
//    NSLog(@"%s recived messagecode:%lu ,msg:%@", __func__, (unsigned long)messageCode, msg);
//
//    dispatch_async(dispatch_get_main_queue(), ^{
//
//        if (messageCode == EZVideoTalkMessageRoomCreated) {
//
//            [self showMessage:[NSString stringWithFormat:@"已创建房间:%d", self.client.roomID]];
//             self.roomIDTextField.text = [NSString stringWithFormat:@"%d", self.client.roomID];
//        }
//        else if (messageCode == EZVideoTalkMessageStartInputData) {
//
//            [self showMessage:[NSString stringWithFormat:@"开始推流"]];
//        }
//    });
//}
//
//- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedBavClientLogMsg:(NSString *)msg {
//
//    NSLog(@"%s recived msg:%@", __func__, msg);
//}
//
//- (void)videoTalk:(EZVideoTalkSDK *)client playDelayTime:(int32_t)delayTime {
//
//    NSLog(@"%s delayTime:%d", __func__, delayTime);
//
//    dispatch_async(dispatch_get_main_queue(), ^{
//        [self showMessage:[NSString stringWithFormat:@"播放卡顿-delayTime:%d", delayTime]];
//    });
//}
//
//- (void)videoTalk:(EZVideoTalkSDK *)client playDelayTimeStatistics:(double)delayTimeStat {
//
//    NSLog(@"%s delayTimeStat:%f", __func__, delayTimeStat);
//}
//
//- (void)videoTalk:(EZVideoTalkSDK *)client didDisplayWidth:(int32_t)width height:(int32_t)height {
//
//    NSLog(@"%s", __func__);
//    if (!self.bEverOpenSound) {
//        self.bEverOpenSound = YES;
//        [self.client openSound:YES];
//    }
//}
//
//
//
//@end
