Browse Source

1.上传速度计算

huangxiaodong 2 years ago
parent
commit
1ae275f2f1

+ 3 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/model/uploadFileDataModel.h

@@ -37,6 +37,9 @@ typedef enum{
 @property (nonatomic, assign)  uploadFileType curUploadFileType;
 @property (nonatomic, assign)  long didUploadBytes;//已经上传的字节数
 @property (nonatomic, assign)  long totalBytes;//总字节数
+
+@property (nonatomic, assign) NSTimeInterval  preTimeInterval;//计算速度用
+@property (nonatomic, assign) NSTimeInterval  curTimeInterval;//计算速度用
 @end
 
 NS_ASSUME_NONNULL_END

+ 1 - 1
创维盒子/双子星云手机/Class/Set/uploadFile/model/uploadFileDataModel.m

@@ -12,6 +12,6 @@
  设置不需要存储的属性, 在模型.m文件中实现该函数.
  */
 +(NSArray *)bg_ignoreKeys{
-   return @[@"imageData",@"videoData",@"asset"];
+   return @[@"imageData",@"videoData",@"asset",@"preTimeInterval",@"curTimeInterval"];
 }
 @end

+ 26 - 2
创维盒子/双子星云手机/Class/Set/uploadFile/photoView/uploadFileRecordCell.m

@@ -238,6 +238,32 @@
     else if(curUploadFileDataModel.curUploadStateType == uploadStateUploading){
         [_upLoadStateButton setImage:[UIImage imageNamed:@"uploadFile_suspend"] forState:UIControlStateNormal];
         _fileSpeedlabel.hidden = NO;
+        
+        //
+        _fileSpeedlabel.text = @"";
+        
+        if(curUploadFileDataModel.preTimeInterval <= 0){
+            _fileSpeedlabel.text = @"--";
+        }
+        else{
+            NSTimeInterval  timers = curUploadFileDataModel.curTimeInterval - curUploadFileDataModel.preTimeInterval;
+            
+            if(timers > 0){
+                long speed= 5*1024*1024 / timers;
+                NSString * speedStr = nil;
+                NSInteger speed_k = speed / (1024);
+                if(speed_k < 1024){
+                    speedStr = [[NSString alloc] initWithFormat:@"%ldKB/s",speed_k];
+                }
+                else {
+                    speedStr = [[NSString alloc] initWithFormat:@"%.1fMB/s",speed_k/1024.0];
+                }
+                
+                _fileSpeedlabel.text = speedStr;
+            }
+        }
+        
+        curUploadFileDataModel.preTimeInterval = curUploadFileDataModel.curTimeInterval;
     }
     else if(curUploadFileDataModel.curUploadStateType == uploadStateSuspend){
         [_upLoadStateButton setImage:[UIImage imageNamed:@"uploadFile_start"] forState:UIControlStateNormal];
@@ -310,8 +336,6 @@
         
     }
     
-    //_fileSpeedlabel.text = @"--";
-    _fileSpeedlabel.text = @"";
 }
 
 

+ 2 - 0
创维盒子/双子星云手机/Class/Set/uploadFile/uploadFileRecordViewController.m

@@ -460,6 +460,8 @@
     uploadFileDataModel *uploadFileDataMod = [not object];
     //HLog(@"%@",uploadFileDataMod);
     
+    uploadFileDataMod.curTimeInterval = [[NSDate date] timeIntervalSince1970];
+    
     //UI和数据还没准备好
     if(!_leftTableView
        && (uploadFileDataMod.curUploadStateType == uploadStateFail