热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

金山云AndroidHTTPCacheSDK

金山云android平台http缓存SDK,可轻易地与播放器集成,完成http视频边播放边下载(缓存)功用。ksyunhttpcachesdkforandroid,it’seasy

金山云android平台http缓存SDK,可轻易地与播放器集成,完成http视频边播放边下载(缓存)功用。ksyun http cache sdk for android, it’s easy to integrated with media players to provide caching capability when watching http videos.

  1. 产物概述

金山云Android HTTPCache SDK能够轻易地和播放器举行集成,供应对HTTP视频边播放缓存的功用,缓存完成的内容能够离线事情。

KSY HTTPCache与播放器及视频效劳器的关联以下图:

《金山云Android HTTPCache SDK》

KSY HTTPCache相当于当地的代办效劳,运用KSY HTTPCache后,播放器不直接要求视频效劳器,而是向KSY HTTPCache要求数据。KSY HTTPCache在代办HTTP要求的同时,缓存视频数据到当地。

2.功用申明

它能够很轻易的和播放器举行集成,供应以下功用: 1. http点播视频边缓存边播放,且播放器可从经由过程回调取得缓存的进度以及错误码

1.缓存完成的视频,再次点播时能够离线播放,不再要求视频server

2.查询已完成的文件列表( 展现缩略图,url), 未完成的文件列表(缓存进度,url)

3.消灭缓存(消灭一切缓存,或删除某个url缓存)

4.供应两种缓存战略供挑选(限定缓存区总大小或许限定缓存文件总个数

3.下载和运用

下载libs目录下的jar包导入工程

为了保证一般事情,引荐一个app只运用一个KSYProxyService实例,比方:

public class App extends Application {

private KSYProxyService proxy;
public static KSYProxyService getProxy(Context context) {
App app = (App) context.getApplicationContext();
return app.proxy == null ? (app.proxy = app.newProxy()) : app.proxy;
}
private KSYProxyService newProxy() {
return new KSYProxyService(this);
}

}
proxy与播放器的集成以下所示: 关于点播,播放器经由过程getProxyUrl接口取得播放地点,举行播放。 关于直播,则可经由过程getProxyUrl(url, newCache)接口取得播放地点,并经由过程参数newCache掌握播放和缓存的行动。概况请见下方接口申明。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

HttpProxyCacheServer proxy = getProxy();
proxy.startServer();
String proxyUrl = proxy.getProxyUrl(VIDEO_URL);
mediaPlayer.setVideoPath(proxyUrl);

}
运用以上要领,proxy将采纳默许设置。可采纳以下要领自定义设置(需在startServer前设置):

设置缓存存储位置 proxy.setCacheRoot(fileRoot)

缓存区大小限定战略(文件个数限定、文件总大小限定),现在这两种战略只能二选一,且战略在每次播放完成或许退出播放时见效。

运用限定文件总大小的战略,默许运用的是该战略,且缓存大小为500M
proxy.setMaxCacheSize(maxCacheSize)
运用限定文件总个数的战略
proxy.setMaxFilesCount(maxFilesCount)

设置对单个文件大小限定,凌驾该大小的文件将不被缓存
proxy.setMaxSingleFileSize(long maxSingleFileSize)

设置不缓存任何文件
proxy.setDisableCache(true)

状况监听
监听proxy的error
void registerErrorListener(OnErrorListener onErrorListener)
监听某个url对应的缓存进度
void registerCacheStatusListener(OnCacheStatusListener onCacheStatusListener, String url)

4.其他接口申明
void getProxyUrl(url, newCache)
取得播放地点

关于http flv直播,假如播放器经由过程接口getProxyUrl( ur)取得播放地点,播放行动是:初次播放,边播放边缓存;今后播放雷同url,则是回看缓存好的视频。
而假如播放器经由过程getProxyUrl(url, newCache)取得播放地点,播放行动是:newCache参数为true,不管是不是有url对应的缓存内容,都是播放并缓存新的直播内容。newCache为false,假如有url对应的缓存内容(掷中缓存),播放 时回看已缓存的直播内容;没有掷中的缓存视频(未掷中缓存),则播放并缓存新的直播内容。

void startServer()
启动server

void shutDownServer()
封闭server

void cleanCaches()
消灭缓存区一切缓存(cacheRoot目录下的一切文件及数据库纪录)

void cleanCache(String url)
删除某个url关于的缓存

boolean isCached(String url)
查询某个url是不是缓存完成

HashMap getCachedFileList()
取得缓存区中已缓存完成的文件列表(url和缓存文件)

HashMap getCachingPercentsList()
取得缓存区中缓存未完成的文件列表(url和缓存完成百分比)

void resumeDownload(String url)
启用背景线程关于已缓冲但未完成的文件举行下载,该线程在以下情况下退出:

下载完成
server接收到雷同url的播放要求
shutDownServer要领被挪用
假如设置了缓存区文件个数限定,背景下载文件的个数不该凌驾文件限定

Bitmap getCachedFileThumbnail(String url)
取得缓存区已缓存完成的url对应的缩略图, 此挪用为耗时操纵,当文件较多时发起不要放在主线程中

File getCacheFile(String url)
取得缓存区已缓存完成的url对应的文件

File getCacheRoot()
取得缓存区途径

void setEnableStatModule(boolean enableStatModule)
设置日记模块的开关,默许为开启日记

void registerLogEventListener(OnLogEventListener onLogEventListener)
注册日记监听接口,当日记模块被开启时,OnLogEventListener将监听到HTTPCache的日记

5.其他文档

请见wiki

6.反应与发起

答疑:金山云视频云客户端SDK答疑专区
邮箱:zengfanping@kingsoft.com
QQ议论群:574179720
release:https://github.com/ksvc/ksyht…


推荐阅读
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • MySQL PMM:MyISAM 和 Aria 存储引擎的性能优化
    本文探讨了 MyISAM 和 Aria 存储引擎在 MySQL 中的关键性能指标,包括密钥缓冲区效率、页面缓存读写性能以及事务日志同步策略。通过优化这些参数,可以显著提升数据库的整体性能。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
author-avatar
乐土网6868
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有