chenqiyang
2024-07-17 be56723cce4cd60ddc144ebe6ac20607675b3006
HDLLinPhoneSDK£¨OC£©/HDLLinPhoneSDK/HDLLinphoneManager.m
@@ -54,6 +54,8 @@
//#import "configManager.h"
#import "HDLLinphoneLog.h"
#import "HDLLinphoneTimerManager.h"
#define LINPHONE_LOGS_MAX_ENTRY 5000
@@ -68,6 +70,9 @@
#define kIAPReady @"IAPReady"                          // no data
#define IPAD (HDLLinphoneManager.runningOnIpad)
#define RESET_VIDEO_ENABLE_TIMER_NAME @"hdlLinphoneVideoEnableTimer" //重设视频开计时器名称
#define RESET_VIDEO_DISABLE_TIMER_NAME @"hdlLinphoneVideoDisableTimer" //重设视频关计时器名称
static LinphoneCore *theLinphoneCore = nil;
static HDLLinphoneManager *theLinphoneManager = nil;
@@ -832,7 +837,7 @@
- (void)onCall:(LinphoneCall *)call StateChanged:(LinphoneCallState)state withMessage:(const char *)message {
    NSLog(@"呼叫状态:%u",state);
    NSLog(@"呼叫状态:%u,信息:%s",state,message);
    
    HDLLinPhoneSDK.instance.IsIncomingReceivedCallState=false;
   // Handling wrapper
@@ -1153,12 +1158,22 @@
         speaker_already_enabled = TRUE;
      }
   }
    if( state == LinphoneCallConnected ){
        NSLog(@"连接了");
//        [self enableVideoPlay:TRUE];
    }
   if (state == LinphoneCallStreamsRunning) {
      if (_speakerBeforePause) {
         _speakerBeforePause = FALSE;
         [self setSpeakerEnabled:TRUE];
         speaker_already_enabled = TRUE;
      }
        if (!self.isResettingVideoEnable&&self.deviceType==HDLLPType_HDLSR) {
            self.isResettingVideoEnable=YES;
            [self resetVideoEnable];
        }
   }
   if (state == LinphoneCallConnected && !mCallCenter) {
      /*only register CT call center CB for connected call*/
@@ -1179,6 +1194,31 @@
    userInfo:dict];
}
/*重新拉取视频流(解决自研可视对讲偶尔出现视频流拉取很慢的问题)
 */
-(void)resetVideoEnable{
    NSLog(@"重置视频开关");
    __weak typeof(self) weakSelf = self;
    [self enableVideoPlay:TRUE];
//    [self enableVideoPlay:FALSE];
//    [[HDLLinphoneTimerManager sharedInstance] scheduleTimerWithInterval:0.5 timerName:RESET_VIDEO_ENABLE_TIMER_NAME count:^(double count) {
//
//    } finished:^{
//        NSLog(@"打开视频");
//        [weakSelf enableVideoPlay:TRUE];
//    }];
}
/*是否允许视频播放
 */
-(void)enableVideoPlay:(bool_t)enable{
    LinphoneCall *call = linphone_core_get_current_call(LC);
    LinphoneCallParams *call_params = linphone_core_create_call_params(LC,call);
    linphone_call_params_enable_video(call_params, enable);
    linphone_call_update(call, call_params);
    linphone_call_params_unref(call_params);
}
static void linphone_iphone_call_state(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState state,
                   const char *message) {
   [(__bridge HDLLinphoneManager *)linphone_core_cbs_get_user_data(linphone_core_get_current_callbacks(lc)) onCall:call StateChanged:state withMessage:message];
@@ -1196,7 +1236,7 @@
}
- (void)onGlobalStateChanged:(LinphoneGlobalState)state withMessage:(const char *)message {
//   LOGI(@"onGlobalStateChanged: %d (message: %s)", state, message);
   LOGI(@"onGlobalStateChanged: %d (message: %s)", state, message);
   NSDictionary *dict = [NSDictionary
               dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:state], @"state",