项目中我们用 CCHttpClient来下载资源文件,但网络不稳定的时候,下载很慢,因此新需求产生:要求下载时实时显示当前下载速度。

   cocos2d-x的CCHttpClient并没有提供这样的功能,ASIHTTPRequest提供了这样的功能(实际上,它拥有更多强大的功能,诸如断点续传等),ASIHTTPRequest是一个Objc类库,这意味着做跨平台移植时,ASIHTTPRequest完全无用了,所以,我想到的就是修改2dx引擎相关部分的代码。

      分析得知,如果能实时获得一个文件的已下载字节数,我们就能通过两次下载字节数的差值来计算出当前下载速度。

HttpClient.cpp文件

  CCHttpClient显示下载速度

 writeData方法由curl来调用,当http返回字节数据时,该方法促发,它用于向CCHttpResponse 写入数据,所以,这里的recvBuffer实际上就是已下载的文件数据,recvBuffer->size()就是下载的字节数 ,问题到此基本解决

 

相关文章:

  • 2022-01-23
  • 2022-12-23
  • 2021-08-04
  • 2022-12-23
  • 2021-07-24
  • 2021-09-08
  • 2022-02-04
  • 2022-02-15
猜你喜欢
  • 2021-08-07
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
相关资源
相似解决方案