由于其他APP中下载的速度可以根据请求的数据得到实际大小,但IOS中的播放器类的下载情况我们无法得到,除非自己对HLS中每个TS都主动下载。在这种情况下,可以通过监视网卡的速度来粗略的显示当前播放器的缓冲速度。

-(void)processSecSpeedText
{if (self.hidden == YES){//[freshTimer invalidate];}long long int curdeviceNetBytes = 0;Reachability *CurReach = [Reachability reachabilityForInternetConnection];switch ([CurReach currentReachabilityStatus]) {case NotReachable://没有网络{NSLog(@"noActiveNet");break;}case ReachableViaWiFi://有wifi{curdeviceNetBytes = [self getWifiBytes];break;}case ReachableViaWWAN://有3G{curdeviceNetBytes = [self getGprsBytes];break;}default:break;}if (deviceNetBytes == 0){deviceNetBytes = curdeviceNetBytes;}long long int deviceNetBytesGap = curdeviceNetBytes - deviceNetBytes;deviceNetBytes = curdeviceNetBytes;NSString* teststr = bytesToSpeedStr(deviceNetBytesGap);LoadingSpeed.text = teststr;CGSize textSize = [LoadingSpeed.text sizeWithFont:LoadingSpeed.font];LoadingSpeed.frame = CGRectMake(self.center.x-(textSize.width)/2, self.center.y-(textSize.height)/2, textSize.width, textSize.height);// self.center;}NSString *bytesToSpeedStr(long long int bytes)
{if(bytes < 1024)     // B{return [NSString stringWithFormat:@"%lldB/s", bytes];}else if(bytes >= 1024 && bytes < 1024 * 1024) // KB{return [NSString stringWithFormat:@"%.1fKB/s", (double)bytes / 1024];}else if(bytes >= 1024 * 1024 && bytes < 1024 * 1024 * 1024)   // MB{return [NSString stringWithFormat:@"%.2fMB", (double)bytes / (1024 * 1024)];}else    // GB{return [NSString stringWithFormat:@"%.3fGB", (double)bytes / (1024 * 1024 * 1024)];}
}//
- (long long int)getWifiBytes
{struct ifaddrs *ifa_list = 0, *ifa;if (getifaddrs(&ifa_list) == -1){return 0;}uint32_t iBytes = 0;uint32_t oBytes = 0;for (ifa = ifa_list; ifa; ifa = ifa->ifa_next){if (AF_LINK != ifa->ifa_addr->sa_family)continue;if (!(ifa->ifa_flags & IFF_UP) && !(ifa->ifa_flags & IFF_RUNNING))continue;if (ifa->ifa_data == 0)continue;/* Not a loopback device. */if (strncmp(ifa->ifa_name, "lo", 2)){struct if_data *if_data = (struct if_data *)ifa->ifa_data;iBytes += if_data->ifi_ibytes;oBytes += if_data->ifi_obytes;//            NSLog(@"%s :iBytes is %d, oBytes is %d",//                  ifa->ifa_name, iBytes, oBytes);}}freeifaddrs(ifa_list);return iBytes+oBytes;
}- (long long int) getGprsBytes
{struct ifaddrs *ifa_list= 0, *ifa;if (getifaddrs(&ifa_list)== -1){return 0;}uint32_t iBytes =0;uint32_t oBytes =0;for (ifa = ifa_list; ifa; ifa = ifa->ifa_next){if (AF_LINK!= ifa->ifa_addr->sa_family)continue;if (!(ifa->ifa_flags& IFF_UP) &&!(ifa->ifa_flags& IFF_RUNNING))continue;if (ifa->ifa_data== 0)continue;if (!strcmp(ifa->ifa_name,"pdp_ip0")){struct if_data *if_data = (struct if_data*)ifa->ifa_data;iBytes += if_data->ifi_ibytes;oBytes += if_data->ifi_obytes;NSLog(@"%s :iBytes is %d, oBytes is %d",ifa->ifa_name, iBytes, oBytes);}}freeifaddrs(ifa_list);return iBytes + oBytes;
}

播放器缓冲界面显示加载速度相关推荐

  1. MaccmsV10切换JS播放器,优化加载速度

    引言:默认自带dpplayer播放器和videoJs播放器 为什么要切换自己的播放器? 1:采集的影视资源大部分是外站的,外站资源平台一般都会标配播放器,便于放自己的一些广告和菠菜,无可厚非. 2:还 ...

  2. android音乐播放器开发 SweetMusicPlayer 加载歌曲列表

    上一篇写了播放器的整体实现思路,http://blog.csdn.net/huweigoodboy/article/details/39855653,现在来总结下加载歌曲列表. 代码地址:https: ...

  3. 如何通过预加载器提升网页加载速度

    预加载器(Pre-loader)可以说是提高浏览器性能最重要的举措.Mozilla 官方发布数据,通过预加载器技术网页的加载性能提升了19%,Chrome测试了 Alexa 排名前2000名网站,性能 ...

  4. android音乐播放器开发在线加载歌词

    转载请注明出处: http://blog.csdn.net/u014608640/article/details/51899239 如果没有本地歌词怎么办?现在来将一下加载在线歌词.好了,还是用那张图 ...

  5. android音乐播放器开发在线加载歌词,移动开发平台

    import android.util.Log; public class OnlineLrcUtil { private static String TAG = "OnlineLrcUti ...

  6. android音乐播放器开发在线加载歌词,android自定义view面试

    } JSONObject jObject = new JSONObject(sb.toString()); int count = jObject.getInt("count"); ...

  7. android音乐播放器开发在线加载歌词,android开发计算器源码

    import android.util.Log; public class OnlineLrcUtil { private static String TAG = "OnlineLrcUti ...

  8. Visual Studio调试/加载速度很慢

    本文翻译自:Visual Studio debugging/loading very slow I'm at wits end. 我的智慧结束了. Visual Studio is typically ...

  9. 页面加载速度-合并资源文件

    前言 一直觉得自己的博客站点页面加载很慢, 就想着去优化一下. 呐, 下图是一次文章页面的加载, 需要2.5s. 其中 js 文件就有18个. 众所周知, 浏览器对资源文件的并行下载数量是有限制的(不 ...

最新文章

  1. 深层上下文化的单词表示
  2. [转载]Array.prototype.slice.call(arguments,1)原理
  3. static final public synchronized abstract
  4. jyphon 环境变量配置
  5. Cortex-M3工作模式与异常
  6. 追加的英文计算机,Latex同时添加中英文摘要
  7. golang type 说明和使用
  8. windows8怎么关机_按下电源键后发生了什么?电脑是如何关机的?
  9. sql语句优化的一些办法
  10. IDEA:IDEA更换主题,好看的主题汇总
  11. 对象和map的相互转换
  12. 完全删除conime.exe 程序。。。
  13. Processing笔记05—贪吃蛇小游戏
  14. VBA取得EXCEL表格中的行数和列数
  15. PreRNN+:Towards A Resolution of the Deep-in-Dilemma in Saptiotemporal Predictive Learning
  16. PWM控制的基本原理
  17. 【计算机网络】中国大学MOOC哈工大国家精品课局域网部分习题
  18. 教你如何提高信用额度
  19. 全面解读Moby和LinuxKit,Docker称沟通不善招致误解
  20. 阿里巴巴erp【商业化操作系统】什么是erpadmin

热门文章

  1. 使用tcpdump抓取vpp接口中的报文
  2. AutoJs学习-聊天室
  3. Cocos2dx系列笔记7:一个简单的跑酷游戏《萝莉快跑》的消化(附下载)
  4. tp3.2中jquery查询订单信息
  5. Beautiful Soup库入门
  6. 0098 系统设计——Instagram设计
  7. LCD刷新率和垂直同步的设置
  8. 导入使用javascript-obfuscator加密后的文件,报错Cannot find module “.“
  9. Ubuntu20.04界面分辨率异常+nvidia-smi未找到命令
  10. 60秒倒计时自动关机