Android应用中怎么实现一个视频点播功能-创新互联
这篇文章给大家介绍Android应用中怎么实现一个视频点播功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联-专业网站定制、快速模板网站建设、高性价比海西网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海西网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海西地区。费用合理售后完善,十载实体公司更值得信赖。采用了本地代理服务的方式,通过原始url给播放器返回一个本地代理的一个url ,代理URL类似:http://127.0.0.1:57430/xxxx;然后播放器播放的时候请求到了你本地的代理上了。
- 本地代理采用ServerSocket监听127.0.0.1的有效端口,这个时候手机就是一个服务器了,客户端就是socket,也就是播放器。
- 读取客户端就是socket来读取数据(http协议请求)解析http协议。
- 根据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