KTVHTTPCache 是一个强大的 HTTP 缓存框架,非常适合缓存多媒体资源。
支持所有基于 HTTP 协议传输的资源:
要使用 CocoaPods 将 KTVHTTPCache 集成到您的 Xcode 项目中,请在 Podfile 中指定:
pod 'KTVHTTPCache', '~> 3.0.0'
运行 pod install
要使用 Carthage 将 KTVHTTPCache 集成到您的 Xcode 项目中,请在 Cartfile 中指定:
github "ChangbaDevs/KTVHTTPCache" ~> 3.0.0
运行 carthage update
来构建框架,然后将构建好的 KTVHTTPCache.framework
和 KTVCocoaHTTPServer.framework
拖入您的 Xcode 项目中。
KTVHTTPCache 最初设计是为了实现在线播放时播放、下载和缓存多媒体资源的功能。从设计之初就严格遵循以下原则:
这个框架的本质是缓存 HTTP 请求,对传输内容没有限制。因此,应用场景不局限于在线音视频播放,也可用于文件下载、图片加载、普通网络请求等场景。
基于最小化网络使用的原则,数据按片段加载。有两种数据源:Network Source 和 File Source,分别用于下载网络数据和读取本地数据。通过比较 Request Header 中的 Range 与本地缓存状态动态生成数据加载策略。 例如,Request Header 中的 Range 为 0-1000,本地缓存中已经有了 200-500 和 700-800 两段数据。那么会相应生成 5 个 Source,分别是:
它们由 Source Manager 管理,对外只提供简单的读取 API。
// 1.启动本地代理服务器 [KTVHTTPCache proxyStart:&error]; // 2.生成代理 URL NSURL *proxyURL = [KTVHTTPCache proxyURLWithOriginalURL:originalURL]; // 3.使用代理URL创建AVPlayer。 AVPlayer *player = [AVPlayer playerWithURL:proxyURL];
// 可以通 过Request Header中的Range参数控制预加载范围。 KTVHCDataRequest *request= [[KTVHCDataRequest alloc] initWithURL:URL headers:headers]; KTVHCDataLoader *loader = [KTVHTTPCache cacheLoaderWithRequest:request]; loader.delegate = self; [loader prepare];
// 将bindToLocalhost设置为NO以激活AirPlay。 NSURL *proxyURL = [KTVHTTPCache proxyURLWithOriginalURL:originalURL bindToLocalhost:NO];
/** * 例如: * http://www.xxxx.com/video.mp4?token=1 * 和 * http://www.xxxx.com/video.mp4?token=2 * 虽然URL不同,但它们都指向同一个文件,可以在块中返回 * http://www.xxxx.com/video.mp4 * 以映射到同一个缓存 */ [KTVHTTPCache encodeSetURLConverter:^NSURL *(NSURL *URL) { return URL; }];
// 设置超时时间间隔。 [KTVHTTPCache downloadSetTimeoutInterval:30]; /** * 出于安全/稳定性考虑,默认只启用以下Content-Type的响应: * - text/x * - video/x * - audio/x * - application/x-mpegURL * - vnd.apple.mpegURL * - application/mp4 * - application/octet-stream * - binary/octet-stream * 要开放更多类型,请使用此API设置 */ [KTVHTTPCache downloadSetAcceptableContentTypes:contentTypes]; // 当默认不接受某个Content-Type类型时,会触发此处理程序。你可以自行决定是否接受。 [KTVHTTPCache downloadSetUnacceptableContentTypeDisposer:^BOOL(NSURL *URL, NSString *contentType) { return NO; }];
// 如果URL已被完全缓存,在被本地服务器释放后,它将自动合并成一个完整的文件。 NSURL *fileURL= [KTVHTTPCache cacheCompleteFileURLWithURL:originalURL];
// 获取指定URL的错误信息。 NSError *error = [KTVHTTPCache logErrorForURL:URL]; // 启用控制台输出日志。 [KTVHTTPCache logSetConsoleLogEnable:YES]; // 将日志写入文件。 [KTVHTTPCache logSetRecordLogEnable:YES]; NSString *logFilePath = [KTVHTTPCache logRecordLogFilePath];
KTVHTTPCache 在 MIT 许可下发布。
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
最强AI数据分析助手
小浣 熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。