RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Android应用中怎么实现一个视频点播功能-创新互联

这篇文章给大家介绍Android应用中怎么实现一个视频点播功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联-专业网站定制、快速模板网站建设、高性价比海西网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海西网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海西地区。费用合理售后完善,十载实体公司更值得信赖。

采用了本地代理服务的方式,通过原始url给播放器返回一个本地代理的一个url ,代理URL类似:http://127.0.0.1:57430/xxxx;然后播放器播放的时候请求到了你本地的代理上了。

  1. 本地代理采用ServerSocket监听127.0.0.1的有效端口,这个时候手机就是一个服务器了,客户端就是socket,也就是播放器。
  2. 读取客户端就是socket来读取数据(http协议请求)解析http协议。
  3. 根据url检查视频文件是否存在,读取文件数据给播放器,也就是往socket里写入数据。同时如果没有下载完成会进行断点下载,当然弱网的话数据需要生产消费同步处理。

优化点

1. 文件的缓存超过限制后没有按照lru算法删除.

Files类。

由于在移动设备上file.setLastModified() 方法不支持毫秒级的时间处理,导致超出限制大小后本应该删除老的,却没有删除抛出了异常。注释掉主动抛出的异常即可。因为文件的修改时间就是对的。

  static void setLastModifiedNow(File file) throws IOException {
    if (file.exists()) {
      long now = System.currentTimeMillis();
      boolean modified = file.setLastModified(now/1000*1000); // on some devices (e.g. Nexus 5) doesn't work
      if (!modified) {
        modify(file);
//        if (file.lastModified() < now) {
//          VideoCacheLog.debug("LruDiskUsage", "modified not ok ");
//          throw new IOException("Error set last modified date to " + file);
//        }else{
//          VideoCacheLog.debug("LruDiskUsage", "modified ok ");
//        }
      }
    }
  }

文章标题:Android应用中怎么实现一个视频点播功能-创新互联
文章路径:http://lswzjz.com/article/piooe.html