tvOS应该waitforloadingfrequestedresource请求相同的资源



我正在为AVPlayer/AVURLAsset HLS视频实现shouldWaitForLoadingOfRequestedResource处理程序,并发现tvOS中的奇怪行为。

正如我看到的,它可以多次请求相同的资源,包括"根"清单,二级清单和段(我说的不是多个质量开关,它请求完全相同的资源)。

同时,每个请求都被我的代码很好地服务-视频播放良好。同样,同样的代码在iOS中也能很好地工作——没有重复的请求。

在哪些情况下AVURLAsset/AVAssetResourceLoader可以在tvOS中多次请求相同的资源?

我有同样的问题我可以添加我正在使用apple示例应用程序

public func resourceLoader(_ resourceLoader: AVAssetResourceLoader, shouldWaitForLoadingOfRequestedResource loadingRequest: AVAssetResourceLoadingRequest) -> Bool {
  print("(#function) was called in AssetLoaderDelegate with loadingRequest: (loadingRequest)")
  var ret : Bool = true
  ret =  shouldLoadOrRenewRequestedResource(resourceLoadingRequest: loadingRequest)
  return ret
}

这是我得到的调试打印:

resourceLoader(_: shouldwaitforloadingfrequestedresource:)被调用在AssetLoaderDelegate中添加loadingRequest:{网址:skd://817015000008100f172b492d3b25f5dda31c59d090b21000},请求ID = 3,内容信息请求=AVAssetResourceLoadingContentInformationRequest: 0x14f6dd070, contenttype = "(null)",内容长度= 0,支持的字节范围访问= NO,磁盘缓存允许= NO,更新日期= (null),数据请求=AVAssetResourceLoadingDataRequest: 0x14f67ae50,请求偏移量= 0,请求的长度= 9223372036854775807,请求的所有数据到结束资源= YES,当前偏移量= 0

我可以看到每次打印的request ID值都是不同的

相关内容

  • 没有找到相关文章

最新更新