当前位置: 首页 > news >正文

网站开发数据库有关合同最新舆情信息网

网站开发数据库有关合同,最新舆情信息网,如何给网站做排名,小程序开发需要多少钱?在播放音视频时,如何开启 Android Media3 ExoPlayer 缓存,请参考笔者另外一篇文章: Android Media3 Exoplayer 开启缓存功能 笔者在设置 ExoPlayer 的缓存大小时,遇到一个非常奇怪的问题,例如,设置最大缓存…

    在播放音视频时,如何开启 Android Media3 ExoPlayer 缓存,请参考笔者另外一篇文章:

Android Media3 Exoplayer 开启缓存功能

    笔者在设置 ExoPlayer 的缓存大小时,遇到一个非常奇怪的问题,例如,设置最大缓存为 5G:

//5G cache (单位:byte)
long maxCacheSize = 5 * 1024 * 1024 * 1024;

    如果你能一眼看出这行代码的问题,说明读者非常心细且基础知识是比较扎实的。^_^

    这么设置以后,会出现什么问题呢?每次当缓存大小达到在 1G 多一点,就无法再增加了,总是在一个数值附近上下浮动。但是缓存大小设置为 1G(1 * 1024 * 1024 * 1024)不会有问题。

    然后又尝试其他几个缓存数值:

//2G cache
long maxCacheSize = 2 * 1024 * 1024 * 1024;
//3G cache
long maxCacheSize = 3 * 1024 * 1024 * 1024;
//4G cache
long maxCacheSize = 4 * 1024 * 1024 * 1024;

    按上面方式设置后,客户端播放不同视频来进行测试,以便客户端存储更多的缓存,但是从“缓存的文件夹”获取的“全部缓存文件总的大小”都是在零点几K、几M之间徘徊,这些数值表明本地缓存文件数量和大小是不正常的。

    为什么缓存空间设置更大,反而无法正常缓存呢?问题出在哪里呢?其实就出在 JAVA 数值类型的转换上。很简单,只需要在上面的代码后面加上一个字母 L,问题就全部解决了:

//2G cache
long maxCacheSize = 2 * 1024 * 1024 * 1024L;
//3G cache
long maxCacheSize = 3 * 1024 * 1024 * 1024L;
//4G cache
long maxCacheSize = 4 * 1024 * 1024 * 1024L;
//5G cache
long maxCacheSize = 5 * 1024 * 1024 * 1024L;

    如果不加上这个后缀,这几个整数相乘的结果会作为整形数值保存在在内存中,但是整数是有数值范围的:

基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)

    上面设置的缓存大小,如果超过了 int 整数的数值范围就会发生溢出,最后的结果就会与我们预设的值不一致。反之,如果加上 L 后缀才是 long 类型的,而上面的数值是在 long 数值范围之内的,就不会发生溢出。那么不加 L,上面四个 test 值发生溢出后最终得到的值是什么呢?

long test2 = 2 * 1024 * 1024 * 1024;  //-2147483648
long test3 = 3 * 1024 * 1024 * 1024;  //-1073741824
long test4 = 4 * 1024 * 1024 * 1024;  //0
long test5 =  5 * 1024 * 1024 * 1024; //1073741824//控制台输出值:test2: -2147483648 - test 3: -1073741824 - test 4: 0 - test 5: 1073741824
CLog.d("test",  "test2: " + test2 + " - test 3: " + test3 + " - test 4: " + test4 + " - test 5: " + test5);

    可以观察到,上面的赋值发生溢出后得到实际的数值,要不变成负数、零、或者变小了,这就解释了为什么会出现上面那个奇怪问题。这里抛砖引玉,其他类似播放器的缓存大小设置可能也会遇到同样的问题,所以需要小心对待,避免落入隐蔽的陷阱。

http://www.tj-hxxt.cn/news/26948.html

相关文章:

  • 深圳做二维码网站设计免费发广告的软件
  • 带有响应式的网站合肥seo管理
  • wordpress是怎么添加登录的seo怎么去优化
  • 做的网站为什么图片看不了怎么回事搜索引擎优化的步骤
  • 网站备案 登陆短视频推广app
  • 容桂网站制作价位西安竞价托管
  • 企业请别人做网站搜索引擎网站优化推广
  • 抓取资源的网站怎么做刷网站排名软件
  • 沈阳网站制作哪家好泰州seo外包公司
  • 石家庄最新今天消息资源优化网站排名
  • 做网站开发的商标注册如何线上推广自己产品
  • 色情网站制作百度推广代运营公司
  • 专门做头像的网站万秀服务不错的seo推广
  • 网页设计与制作心得体会100字成都seo公司
  • 站酷网海报素材图片最新国际新闻头条新闻
  • 网站怎么制作成二维码抖音推广渠道有哪些
  • 临西网站建设价格网站收录提交入口
  • 网站建设收费天津seo推广
  • 南昌市做网站公司网站首页制作网站
  • 电影网站在线播放怎么做重庆关键词优化平台
  • 武汉个人做网站的电话网络推广客服好做吗
  • 都匀网站建设公司百度流量统计
  • 网站降权查询工具广东近期新闻
  • 100个有趣的网站短视频排名seo
  • 京东云wordpress网站优化推广的方法
  • wordpress头像自定义seo站
  • 洛阳制作网站的公司买卖交易平台
  • 江油网站制作零基础seo入门教学
  • 做网站卖机器怎么弄优化教程
  • 举报网站建设百度seo是什么意思呢