Open ClayGuitar opened 5 months ago
应该是用错方法了 Apple Document: Note that this method only works with the file paths (not, for example, the string representations of URLs). Apple文档:请注意,此方法仅适用于文件路径(而不是URL的字符串表示)。
But you string is clearly a full URL address, does not belong to the file path, so we will assemble them into a URL, using URL classification URLByDeletingLastPathComponent to intercept 但是你的字符串显然是一个完整的URL地址,不属于文件路径,所以我们将它们组装成一个URL,使用URL分类URLByDeletingLastPathComponent来拦截
另外还有个问题,就是利用 KTVHCDataLoader 下载ts文件之后虽然缓存在了本地,但是依然用不到本地文件,看代码是因为读这个KTVHCDataUnit的对象时需要判断totalLeng以及completeURL
使用情况 视频m3u8格式下,访问第一个m3u8链接得到新的m3u8文件然后再播放对应ts文件 如服务器返回
https://www.xxxxx.com/xxxxxx.m3u8
后访问得到新的文件如下然后再根据对应网速自动选择播放低清高清视频得到如下ts文件
如配合AVPlayer使用 调用proxyURLWithOriginalURL 该方法,访问服务器最开始返回m3u8缓存没有问题,但第二个m3u8以及后续ts文件缓存的url 在执行KTVHCHTTPConnection类中67行的代码
URLString = URLString.stringByDeletingLastPathComponent;
后https://
前缀会变为https:/
前缀,少了一个反斜杠/,导致自己通过completeFilePathWithURL
或KTVHCDataLoader这个类提前下载的文件缓存没有用到。