iOS 开源播放器ijkplayer播放视频设置缓存

项目中使用ijkplayer播放视频时遇到拖动延迟问题。研究发现ijkplayer支持缓存但相关资料较少。通过修改源码,在URL前添加ijkio协议并配置options,启用缓存功能,解决了seek时的延迟,实现了秒开效果。但要注意,这种方法不适用于HLS协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接受一个视频播放的项目 发现一个问题视频在拖动的时候 需要等很久才能播放 看了下代码使用的是B站开源的ijkplayer 查了下资料很多人说没有ijkplayer每次都seek时都重新链接获取数据导致耗时很长。查了下资料发现很少涉及到播放器缓存这块,更有人说ijkplayer不支持缓存。

于是下了ijkplayer的源码 编译一下 编译过程不说了 很方便的 代码里简单搜索下cache 搜到了cache的相关信息说明ijkplayer还是支持的。又查了下代码和资料完成这功能seek时能够做到秒开。

具体实现代码如何:

    NSString *libraryPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
    libraryPath = [libraryPath stringByAppendingString:@"/Caches/"];
    NSString *fileName = [self.url.pathComponents lastObject];
    libraryPath = [libraryPath stringByAppendingString:fileName];
    NSString *mapPath = [libraryPath stringByAppendingString:@"/map/"];
    mapPath = [mapPath stringByAppendingString:fileName];
    mapPath = [mapPath stringByAppendingString:@".tmp"];
    [options setFormatOptionValue:libraryPath forKey:@"cache_file_path"];
    [options setFormat
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值