热门标签 | 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…


推荐阅读
  • 本文详细介绍了在 Windows 7 上安装和配置 PHP 5.4 的 Memcached 分布式缓存系统的方法,旨在减少数据库的频繁访问,提高应用程序的响应速度。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文旨在介绍一系列提升工作效率的浏览器插件和实用小工具,帮助用户在日常工作中更加便捷高效。内容由原作者授权发布。 ... [详细]
  • 在Android应用开发中,当在MenuItem中通过app:actionLayout属性使用Switch控件时,可能会遇到空指针异常的问题。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 详解MyBatis二级缓存的启用与配置
    本文深入探讨了MyBatis二级缓存的启用方法及其配置细节,通过具体的代码实例进行说明,有助于开发者更好地理解和应用这一特性,提升应用程序的性能。 ... [详细]
  • 解决宝塔面板Nginx反向代理缓存问题
    本文介绍如何在宝塔控制面板中通过编辑Nginx配置文件来解决反向代理中的缓存问题,确保每次请求都能从服务器获取最新的数据。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文介绍了如何将Linux系统中的YUM源更换为阿里云镜像源,包括网络连通性测试、原YUM源的移除、阿里云YUM源的配置以及缓存的更新等步骤。 ... [详细]
  • GCC(GNU Compiler Collection)是GNU项目下的一款功能全面且高效的多平台编译工具,广泛应用于Linux操作系统中。本文将详细介绍GCC的特点及其基本使用方法。 ... [详细]
  • 在使用Visual Studio构建项目时遇到了IntelliSense错误,具体表现为预期的')'未找到。本文提供了详细的解决方案和可能的原因分析。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 解决Expo XDE 2.22.1版本启动错误
    根据问题描述,用户在将Expo升级至2.22.1版本后,在尝试打开项目时遇到了错误。本文提供了详细的错误分析及解决方案。 ... [详细]
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社区 版权所有