我正在尝试下载.m3u8视频的.ts文件。我为每个.ts网址和将会话配置HTTPMaximumConnectionsPerHost属性设置为4的下载任务创建了一个下载任务:
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
sessionConfig.HTTPMaximumConnectionsPerHost = 4;
_session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:[NSOperationQueue mainQueue]];
预期的行为:只能同时下载4 ts,并且一次可以下载 这些下载之一完成,下一个下载项目将被放入 队列,以便在任何时候最多下载4 ts。
实际行为:大约同时下载了50多个ts 忽略HTTPMaximumConnectionsPerHost属性。
Charles Timeline的屏幕快照显示了同时发生的多个.ts请求。
当我尝试通过将HTTPMaximumConnectionsPerHost设置为3来使用NSURLSession下载图像时,我一次只能看到3次下载。
要下载m3u8,我还可以使用AVAssetDownloadURLSession而不是NSURLSession,后者一次只能下载1个.ts。
我正在尝试找出:
1)为什么HTTPMaximumConnectionsPerHost属性可以正常工作 图像下载,但不适用于.ts下载,因此同时发生了超过4个.ts下载。
2)是否有一种方法可以使用AVAssetURLDownloadSession将最大并发.ts下载数量增加到4,该方法仅下载1个.ts
答案 0 :(得分:2)
除非您已发现API中的错误,否则可能表明您正在多个会话和/或除已配置的会话之外的其他会话中发送.ts请求。会话不知道其他会话中的请求。每次会话最多。