Pārlūkot izejas kodu

1.ping模块独立出来

huangxiaodong 10 mēneši atpakaļ
vecāks
revīzija
ce1938e7de

+ 20 - 0
创维盒子/双子星云手机.xcodeproj/project.pbxproj

@@ -444,6 +444,10 @@
 		6B3E7A832C89CC1300B032C4 /* webRtcManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3E7A812C89CC1300B032C4 /* webRtcManager.m */; };
 		6B3E7A842C89CC1300B032C4 /* webRtcManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3E7A802C89CC1300B032C4 /* webRtcManager.h */; };
 		6B3E7A852C89CC1400B032C4 /* webRtcManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3E7A812C89CC1300B032C4 /* webRtcManager.m */; };
+		6B3E7A892C8A9FFA00B032C4 /* pingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3E7A872C8A9FF800B032C4 /* pingManager.h */; };
+		6B3E7A8A2C8A9FFA00B032C4 /* pingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3E7A882C8A9FF800B032C4 /* pingManager.m */; };
+		6B3E7A8B2C8A9FFB00B032C4 /* pingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3E7A872C8A9FF800B032C4 /* pingManager.h */; };
+		6B3E7A8C2C8A9FFB00B032C4 /* pingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3E7A882C8A9FF800B032C4 /* pingManager.m */; };
 		6B3F96342AD2A15A008E349E /* netWorkManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3F96322AD2A15A008E349E /* netWorkManager.h */; };
 		6B3F96352AD2A15A008E349E /* netWorkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3F96332AD2A15A008E349E /* netWorkManager.m */; };
 		6B3F963A2AD2AD0B008E349E /* newWorkInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3F96392AD2AD0B008E349E /* newWorkInterface.h */; };
@@ -1786,6 +1790,8 @@
 		6B3E7A7A2C89AD5500B032C4 /* webRtcPlayerViewController+AdjustPlayerViewFrame.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "webRtcPlayerViewController+AdjustPlayerViewFrame.m"; sourceTree = "<group>"; };
 		6B3E7A802C89CC1300B032C4 /* webRtcManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = webRtcManager.h; sourceTree = "<group>"; };
 		6B3E7A812C89CC1300B032C4 /* webRtcManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = webRtcManager.m; sourceTree = "<group>"; };
+		6B3E7A872C8A9FF800B032C4 /* pingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pingManager.h; sourceTree = "<group>"; };
+		6B3E7A882C8A9FF800B032C4 /* pingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pingManager.m; sourceTree = "<group>"; };
 		6B3F96322AD2A15A008E349E /* netWorkManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = netWorkManager.h; sourceTree = "<group>"; };
 		6B3F96332AD2A15A008E349E /* netWorkManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = netWorkManager.m; sourceTree = "<group>"; };
 		6B3F96392AD2AD0B008E349E /* newWorkInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = newWorkInterface.h; sourceTree = "<group>"; };
@@ -3054,6 +3060,15 @@
 			path = webRtcManager;
 			sourceTree = "<group>";
 		};
+		6B3E7A862C8A9FDC00B032C4 /* pingManager */ = {
+			isa = PBXGroup;
+			children = (
+				6B3E7A872C8A9FF800B032C4 /* pingManager.h */,
+				6B3E7A882C8A9FF800B032C4 /* pingManager.m */,
+			);
+			path = pingManager;
+			sourceTree = "<group>";
+		};
 		6B3F96312AD2A0FA008E349E /* netWork */ = {
 			isa = PBXGroup;
 			children = (
@@ -3379,6 +3394,7 @@
 		6B8676802C855ECC00F81DFC /* webRtc */ = {
 			isa = PBXGroup;
 			children = (
+				6B3E7A862C8A9FDC00B032C4 /* pingManager */,
 				6B3E7A7F2C89CBF100B032C4 /* webRtcManager */,
 				6B3E7A722C89609E00B032C4 /* view */,
 				6B8676942C8596F800F81DFC /* model */,
@@ -4109,6 +4125,7 @@
 				6BF558C02C4515B500701854 /* audioPlayListManager.h in Headers */,
 				6B2C1E1C2C070ADE00FDCF82 /* ZFAVPlayerManager.h in Headers */,
 				6B8FF6C12B05B24D00800981 /* uploadFileRecordCell.h in Headers */,
+				6B3E7A892C8A9FFA00B032C4 /* pingManager.h in Headers */,
 				6B45C5082B5FA2DD007E6911 /* diskListTableCell.h in Headers */,
 				183AE6D42A8CAFAE00B11CB0 /* UIView+View.h in Headers */,
 				6BEF9B852C64CDD300142B75 /* frpUploadModel.h in Headers */,
@@ -4392,6 +4409,7 @@
 				6BF558C22C4515B500701854 /* audioPlayListManager.h in Headers */,
 				6B2C1E1D2C070ADE00FDCF82 /* ZFAVPlayerManager.h in Headers */,
 				6BD506E22B9576A4006E7CB0 /* uploadFileRecordCell.h in Headers */,
+				6B3E7A8B2C8A9FFB00B032C4 /* pingManager.h in Headers */,
 				6BD506E32B9576A4006E7CB0 /* diskListTableCell.h in Headers */,
 				6BD506E42B9576A4006E7CB0 /* UIView+View.h in Headers */,
 				6BEF9B872C64CDD300142B75 /* frpUploadModel.h in Headers */,
@@ -5133,6 +5151,7 @@
 				6BD507942B9576A4006E7CB0 /* downloadFileRecordCell.m in Sources */,
 				6BD507952B9576A4006E7CB0 /* UIProgressView+AFNetworking.m in Sources */,
 				6B2C1E772C070ADE00FDCF82 /* ZFLandscapeViewController.m in Sources */,
+				6B3E7A8C2C8A9FFB00B032C4 /* pingManager.m in Sources */,
 				6B2C1E5B2C070ADE00FDCF82 /* UIViewController+ZFPlayerRotation.m in Sources */,
 				6BD507962B9576A4006E7CB0 /* HWAddFolderViewController.m in Sources */,
 				6B8676922C858CB300F81DFC /* webRtcPlayerViewController.m in Sources */,
@@ -5498,6 +5517,7 @@
 				6BED888F2B4E901900F76DDC /* downloadFileRecordCell.m in Sources */,
 				183AE64C2A8A2CF000B11CB0 /* UIProgressView+AFNetworking.m in Sources */,
 				6B2C1E762C070ADE00FDCF82 /* ZFLandscapeViewController.m in Sources */,
+				6B3E7A8A2C8A9FFA00B032C4 /* pingManager.m in Sources */,
 				6B2C1E5A2C070ADE00FDCF82 /* UIViewController+ZFPlayerRotation.m in Sources */,
 				A031DD7527EC507000909527 /* HWAddFolderViewController.m in Sources */,
 				6B8676902C858CB300F81DFC /* webRtcPlayerViewController.m in Sources */,

+ 4 - 1
创维盒子/双子星云手机/AppDelegate/AppDelegate.m

@@ -21,6 +21,8 @@
 //#import <ZFPlayer/ZFLandscapeRotationManager.h>
 #import "ZFLandscapeRotationManager.h"
 #import <WebRTC/AMediaStream.h>
+#import "pingManager.h"
+
 @interface AppDelegate ()<JJExceptionHandle,WXApiDelegate>
 {
     CMMotionManager *cmManager;
@@ -223,6 +225,7 @@
         HLog(@"Reachability: %@", AFStringFromNetworkReachabilityStatus(status));
 
         [[NSNotificationCenter defaultCenter] postNotificationName:NetWorkChangeNotification object:nil];
+        [[pingManager shareManager] startPingDeviceIpFun];
     }];
 
     [[AFNetworkReachabilityManager sharedManager] startMonitoring];
@@ -345,7 +348,7 @@
         return _NASShareFileService;
     }
     
-    if([connectDeviceManager shareInstance].isPingOk){
+    if([pingManager shareManager].isPingOk){
         return [NSString stringWithFormat:@"http://%@:9888/",ksharedAppDelegate.DeviceThirdIdMod.data.ip];
     }
     

+ 1 - 0
创维盒子/双子星云手机/AppDelegate/PrefixHeader.pch

@@ -51,6 +51,7 @@
 #import "ComontAlretViewController.h"
 #import "webSocketManager.h"
 #import "webRtcManager.h"
+#import "pingManager.h"
 
 #import "MJExtension.h"
 #import "RSATool.h"

+ 3 - 0
创维盒子/双子星云手机/AppDelegate/SceneDelegate.m

@@ -48,6 +48,7 @@
 #import "UIInterface+HXRotation.h"
 #import "imageDetailsScrollViewController.h"
 #import "videoPlayByAVPlayerViewController.h"
+#import "pingManager.h"
 
 @interface SceneDelegate ()<SetUsePWDViewControllerDelegate,GuideViewControllerDelegate,UITabBarControllerDelegate>
 @property(nonatomic, strong)   CalculatorViewController *calculatorVC;
@@ -296,6 +297,8 @@
                 
                 [weakSelf enterMainVCFromSceneSecondStepFun];;
                 
+                //ping看上是否为内网情况
+                [[pingManager shareManager] startPingDeviceIpFun];
                 //获取webrtc相关信息
                 [weakSelf queryWebRtcMsgFun];
             }

+ 1 - 1
创维盒子/双子星云手机/Class/Set/view/allVersionView.m

@@ -234,7 +234,7 @@
 //                cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%@%@",curIp,networkStr];
                 
                 NSString * networkStr = @"公网";
-                if([connectDeviceManager shareInstance].isPingOk){
+                if([pingManager shareManager].isPingOk){
                     networkStr = @"局域网";
                 }
                 cell.detailTextLabel.text = networkStr;

+ 1 - 1
创维盒子/双子星云手机/NAS/nasBackupsManager/nasMixBackupsManager.m

@@ -37,7 +37,7 @@
     if (self = [super init]) {
         _maxUploadLoadCount = 1;
         
-       if ([connectDeviceManager shareInstance].isPingOk)
+       if ([pingManager shareManager].isPingOk)
        {
            _speedShowCount = 3;
        }

+ 1 - 1
创维盒子/双子星云手机/NAS/nasUploadManager/nasMixUploadManager.m

@@ -37,7 +37,7 @@
     if (self = [super init]) {
         _maxUploadLoadCount = 2;
         
-       if ([connectDeviceManager shareInstance].isPingOk)
+       if ([pingManager shareManager].isPingOk)
        {
            _speedShowCount = 3;
        }

+ 1 - 1
创维盒子/双子星云手机/mine/mineViewController.m

@@ -477,7 +477,7 @@
     _snLabel.text = fullSNStr;
     
     NSString *NetButText = NSLocalizedString(@"mine_net_LAN",nil);
-    if(![connectDeviceManager shareInstance].isPingOk){
+    if(![pingManager shareManager].isPingOk){
         NetButText = NSLocalizedString(@"mine_net_WAN",nil);
     }
     

+ 23 - 0
创维盒子/双子星云手机/webRtc/pingManager/pingManager.h

@@ -0,0 +1,23 @@
+//
+//  pingManager.h
+//  双子星云手机
+//
+//  Created by xd h on 2024/9/6.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface pingManager : NSObject
+/** 实例化对象(单例) */
++ (instancetype)shareManager;
+
+/**自定义字段 是否为局域网*/
+@property (nonatomic,assign) bool isPingOk; //
+
+#pragma mark ---ping-----站点 判断是否是局域网
+- (void)startPingDeviceIpFun;
+@end
+
+NS_ASSUME_NONNULL_END

+ 107 - 0
创维盒子/双子星云手机/webRtc/pingManager/pingManager.m

@@ -0,0 +1,107 @@
+//
+//  pingManager.m
+//  双子星云手机
+//
+//  Created by xd h on 2024/9/6.
+//
+
+#import "pingManager.h"
+#import "WHPingTester.h"
+
+@interface pingManager ()<WHPingDelegate>
+{
+    WHPingTester *whPingTester;
+}
+@end
+
+@implementation pingManager
+
++ (instancetype)shareManager {
+    static pingManager *_instance;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        _instance = [[self alloc] init];
+    });
+    return _instance;
+}
+
+- (instancetype)init {
+
+    if (self = [super init]) {
+        //[self registeNotification];
+    }
+    return self;
+}
+
+
+#pragma mark ---ping-----站点 判断是否是局域网
+- (void)startPingDeviceIpFun
+{
+    NSString *roomInternetIp = ksharedAppDelegate.DeviceThirdIdMod.data.ip;
+    //roomInternetIp = @"www.baidu.com";
+    if(!roomInternetIp || roomInternetIp.length < 7){
+        self.isPingOk = NO;
+        return;
+    }
+    
+    if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus != AFNetworkReachabilityStatusReachableViaWiFi)
+    {//
+        HLog(@"非wifi情况 不用ping肯定不是内网")
+        self.isPingOk = NO;
+        return;
+    }
+    
+    if (self->whPingTester)
+    {
+        [self->whPingTester stopPing];
+        self->whPingTester = nil;
+    }
+    
+    self->whPingTester = [[WHPingTester alloc] initWithHostName:roomInternetIp];
+    self->whPingTester.delegate = self;
+    //self->whPingTester.countdownTime = 1; //1秒ping一次
+    [self->whPingTester startPing];
+    
+    
+    /// 启动定时器监听 10秒后 whPingTester的状态
+    KWeakSelf
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        if(self->whPingTester){
+            [weakSelf didGetPingStateIsOK:NO];
+        }
+    });
+    
+}
+
+#pragma mark ---ping---- 代理回调
+- (void)didPingSucccessWithTime:(float)time withError:(NSError*) error
+{
+    HLog(@"time:%f \n error: %@",time,error)
+    
+    //if(error.code == 111 || time > 1000) //超时或者延时超过100ms,就要记录数据
+    if(error != nil)
+    {
+        [self didGetPingStateIsOK:NO];
+    }
+    else if(time > 0){
+        [self didGetPingStateIsOK:YES];
+        //test code
+        //[self didGetPingStateIsOK:NO];
+    }
+    
+}
+
+- (void)didPingfialewithError:(NSError*)error
+{
+    HLog(@" error  error: %@",error)
+    [self didGetPingStateIsOK:NO];
+}
+
+-(void)didGetPingStateIsOK:(BOOL)isOk
+{
+    self.isPingOk = isOk;
+    [self->whPingTester stopPing];
+    self->whPingTester = nil;
+}
+
+@end

+ 17 - 0
创维盒子/双子星云手机/webRtc/webRtcManager/webRtcManager.m

@@ -55,6 +55,19 @@
     
     NSInteger result = [_mediaStream startUploadChannel:url ice:ice sn:roomName token:@"vclusters"];
     
+//    NSInteger result = [_mediaStream start:url
+//                            ice:ice
+//                             sn:roomName
+//                         direct:0
+//                            fmt:1//1(h264) 5(h265)
+//                     videoWidth:1080.0
+//                    videoHeight:1920.0
+//                            fps:30
+//                        bitrate:3000
+//                      cardWidth:0
+//                     cardHeight:0
+//                    cardDensity:0
+//                          token:@"vclusters"];
     
     HLog(@"result:%ld",result)
 }
@@ -97,4 +110,8 @@
     
 }
 
+-(void)didGetStats:(NSString*)peerName stats:(RTC_OBJC_TYPE(RTCStatisticsReport) *)stats
+{
+    HLog(@"didGetStats")
+}
 @end