gpt4 book ai didi

ios - 使用 AVAssetResourceLoader 时出现未知错误 -12881

转载 作者:行者123 更新时间:2023-12-01 17:38:52 25 4
gpt4 key购买 nike

我正在尝试编写自定义 resourceLoader 委托(delegate)来使用 AVURLAsset。我从 Apple 的 AVARLDelegateDemo 代码开始。我正在尝试播放 HLS 网址。我正在 iPad 上进行测试。

我注意到播放列表文件 (.m3u8) 已正确下载。然后视频文件 (.ts) 也被下载。我知道 .ts 文件已下载,因为我可以看到 GET 请求在 Web 服务器上完成,状态为 200。我还在以下行设置了一个断点:

[loadingRequest.dataRequest respondWithData:data];

数据的长度与文件大小相匹配,第一个字节是预期的 .ts (0x47) 的同步字节。

问题是应用程序显示错误代码。弹出如下对话框:

“操作无法完成。发生未知错误 (-12881)”

谷歌搜索这个错误没有找到任何信息。我不知道要检查什么或如何获得更多信息。这不像应用程序崩溃并给我一个堆栈跟踪。视频拒绝播放,除了“未知错误 -12881”之外,我没有得到更多信息。这没什么可继续的。

此外,如果我将未修改版本的演示代码指向我的播放列表,视频播放效果很好。

谁能告诉我哪里出了问题?这是我的自定义资源加载器的代码。

- (BOOL) resourceLoader:(AVAssetResourceLoader *)resourceLoader shouldWaitForLoadingOfRequestedResource:(AVAssetResourceLoadingRequest *)loadingRequest

NSURLRequest *redirect = nil;

redirect = [self generateRedirectURL:(NSURLRequest *)[loadingRequest request]];

if (redirect)
{
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithURL:redirect.URL
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
[loadingRequest.dataRequest respondWithData:data];
[loadingRequest finishLoading];

}] resume];

} else
{
[self reportError:loadingRequest withErrorCode:badRequestErrorCode];
}
return YES;
}

最佳答案

备案:

我就尝试使用 AVAssetResourceLoaderDelegate 访问 .ts 文件的问题联系了 Apple 开发人员技术支持。这种方法不起作用,因为:

It is not possible to have access to the data as it is being downloaded. iOS only allows only the following to be returned via AVAssetResourceLoaderDelegate for HTTP Live Streaming media: - key requests - playlist - media redirects

对于我的用例,我最终使用本地网络服务器 ( https://github.com/swisspol/GCDWebServer ) 并将所有请求发送到应用程序内的网络服务器。然后该 Web 服务器向远程服务器发出请求

关于ios - 使用 AVAssetResourceLoader 时出现未知错误 -12881,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com