ChangbaDevs / KTVHTTPCache

A powerful media cache framework.
MIT License
2.35k stars 435 forks source link

用原链接可以播放,但302重定向后缓存链接有一定概率播放不了,但是重新获取一个链接后,又可以播放。 #159

Closed amycliny closed 7 months ago

amycliny commented 2 years ago

标题可能说得不是很清楚,大致是这样的: 1.每次向服务器请求同一个视频的播放链接,每次都会返回不同的链接, 2.返回的链接,都会302重定向到不同的真实播放链接。这几个链接在网页都是可以播放的。

遇到的问题:KTVHCDownload , Invaild response 无法播放,但是当我重新从服务器获取新的链接,重定向后又可播放了,播放链接比较敏感,可以找我私发一下,log如下: KTVHCDownload : 0x283330f50, Invaild response Error : Error Domain=KTVHTTPCache error Code=-192701 "(null)" UserInfo={KTVHCErrorUserInfoKeyRequest=<NSMutableURLRequest: 0x281a06c20> { URL: 【这是重定向后的链接】}, KTVHCErrorUserInfoKeyURL=【这是重定向后的链接】, KTVHCErrorUserInfoKeyResponse=<NSHTTPURLResponse: 0x281fdb340> { URL: 【这是重定向前的原始链接】 } { Status Code: 302, Headers { Content-Type = ( application/octet-stream ); server-timing = ( inner; dur=2, cdn-cache;desc=MISS,edge;dur=0,origin;dur=17 ); Via = ( ens-vcache8.cn4259[17,0] ); Server = ( Tengine ); x-tt-trace-host = ( 01207ea123c618b3f5156199e54aef17716487b58b1e7c5ff2ba5179f9ca4c4864cb755b4a223f70e81eac2762be30c41ac22b6b524b80ee48d0bb46e27f7dabd017b218301b1d9c3b59264c95331cf467f69794a98a70dffa24df53b3c0b1bd65 ); Timing-Allow-Origin = ( * ); Location = ( 【这是重定向后的链接】 ); x-tt-trace-tag = ( id=03;cdn-cache=miss;type=dyn ); Date = ( Wed, 24 Nov 2021 04:48:10 GMT ); Content-Length = ( 0 ); X-Tt-Logid = ( 202111241248100102100250411F80E1CE ); Connection = ( close ); EagleId = ( 2ab1558a16377292902371771e ); } }} 希望大家可以指点一下,这个问题怎么解决呢?

lvxuelian666666 commented 1 year ago

我遇到这个问题了,该怎么联系您帮我解决一下。

libobjc commented 7 months ago

你的播放链接具有时效性

解决方法:

第一步:通过 ‘encodeSetURLConverter’ API 做 URL 映射,使不同的 URL 指向同一块缓存

/**
 *  Set URL converter.
 *  If the URL contains authentication parameters. It can be removed here to ensure that the indeterminate URL can use the same cache.
 *
 *  @warning High frequency call. Make it simple.
 *
 *  @param URLConverter : The URLConverter.
 */
+ (void)encodeSetURLConverter:(NSURL * (^)(NSURL *URL))URLConverter;

第二步:如果资源还没有本地完全缓存完毕,确保播放链接为最新可用