我正在为shouldWaitForLoadingOfRequestedResource
/ AVPlayer
HLS视频实施AVURLAsset
处理程序,并在tvOS中发现了一种奇怪的行为。
我认为它可以多次请求相同的资源,包括“root”清单,二级清单和段(我说的不是多个质量开关,它要求完全相同的资源)。
同时,每个请求都能很好地提供我的代码 - 视频播放效果很好。 此外,完全相同的代码在iOS中运行良好 - 没有重复的请求。
在哪些情况下,AVURLAsset
/ AVAssetResourceLoader
可以在tvOS中多次请求相同的资源?
答案 0 :(得分:1)
我有同样的问题 我可以补充一点,我使用的是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(_:shouldWaitForLoadingOfRequestedResource :)被调用 在AssetLoaderDelegate中使用loadingRequest: {URL: skd:// 817015000008100f172b492d3b25f5dda31c59d090b21000},请求 ID = 3,内容信息请求= AVAssetResourceLoadingContentInformationRequest:0x14f6dd070,内容 type ="(null)",内容长度= 0,支持字节范围访问= NO, 允许磁盘缓存= NO,续订日期=(null),数据请求= AVAssetResourceLoadingDataRequest:0x14f67ae50,请求的偏移量= 0, 请求长度= 9223372036854775807,请求所有数据结束 resource = YES,当前偏移量= 0
每次打印中的值request ID
都不同时,我都可以看到