【问题标题】:How to find remaining time for uploading如何找到上传的剩余时间
【发布时间】:2013-01-22 14:20:38
【问题描述】:

在我的 Iphone 应用程序中,我正在将视频上传到服务器。 我可以找出总咬数和上传咬数。有没有办法找到上传过程完成的剩余时间

我正在打印这样的咬痕-----上传的字节数-----总字节数-----------

2013-02-07 01:25:33.439 VideoProject[9170:907] ------32768------2195238-----------
2013-02-07 01:25:33.451 VideoProject[9170:907] ------65536------2195238-----------
2013-02-07 01:25:33.456 VideoProject[9170:907] ------98304------2195238-----------
2013-02-07 01:25:33.462 VideoProject[9170:907] ------131072------2195238-----------
.
.
.
.
2013-02-07 01:25:54.443 VideoProject[9170:907] ------2129920------2195238-----------
2013-02-07 01:25:54.449 VideoProject[9170:907] ------2145728------2195238----------- 
2013-02-07 01:25:55.215 VideoProject[9170:907] ------2162688------2195238----------- 
2013-02-07 01:25:55.222 VideoProject[9170:907] ------2193380------2195238-----------
2013-02-07 01:25:55.542 VideoProject[9170:907] ------2195238------2195238-----------

【问题讨论】:

  • 这完全取决于双方的网络。

标签: iphone ios file-upload upload


【解决方案1】:
  • 以秒为单位获取上传字节的时间。
  • 以秒为单位估计总时间。 这可以通过比较字节找到
  • 通过查找差异来查找剩余时间。
  • 使用以下获取小时、分钟、秒。

`

- (NSDictionary*)createTimemapForSeconds:(int)seco                                   
  {
       int hours = floor(seco / (60 * 60) );

       float minute_divisor = seco % (60 * 60);
       int minut = floor(minute_divisor / 60);

       float seconds_divisor = seco % 60;
       seco = ceil(seconds_divisor);

       NSDictionary * timeMap = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSNumber numberWithInt:hours], [NSNumber numberWithInt:minut], [NSNumber numberWithInt:seco], nil] forKeys:[NSArray arrayWithObjects:@"h", @"m", @"s", nil]];

       return timeMap;
    }

【讨论】:

    【解决方案2】:

    使用可达性你可以实现这个点击here

    使用可达性你可以计算网络的速度,然后你可以用这个速度来划分剩余的字节,并可以产生上传剩余时间等的结果。

    希望这会有所帮助..

    【讨论】:

      【解决方案3】:

      您可以保存开始日期,并在每次调用进度函数(或块)时,计算自开始以来经过的时间,并通过简单的交叉乘法找到估计的剩余时间量,因为您知道有多少字节左:

      elapsed_time * total_bytes = total_time * downloaded_bytes
      remaining_time = total_time - elapsed_time
      

      但是是的,网络状况可能随时变化,所以这并不准确。

      【讨论】:

      • 这里总是需要考虑误差范围。如有必要,最好高估时间量。我同意@Cyrille。
      猜你喜欢
      • 2015-01-24
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      相关资源
      最近更新 更多