6

我在通过 NSURLProtocol 子类中的特殊协议方案处理视频请求时遇到了一些问题。其他所有资源(图像/文本)都得到了正确处理,但是,当发送视频请求时,我只接到“canInitWithRequest”的电话,没有跟进。所以,我的视频资源没有得到解决。现在,我环顾四周,并没有找到明确的解决方案。有些人改用嵌入式 HTTP 服务器,但这似乎有点矫枉过正。有谁知道这是否是一个错误,如果不是,为什么会有这个限制,是否有解决方法?

类似的问题:WebView 的自定义 NSURLProtocol 类在 HTML5 文档中加载视频时不起作用,但不幸的是没有答案。

4

1 回答 1

1

@Meda,我遇到了类似的问题。这是我发现的,希望对你有用。我假设您使用 NSUrlProtocol 是因为您想拦截视频请求。我正在使用通过 HTTP 请求视频的 Web 视图。它转到 NSURLProtocol 并发出请求。当它接收到数据时,webView 会加载视频渲染插件(查看 HTTP 标头中的 mime 类型)。该插件需要数据作为部分 HTTP 响应(响应代码 206)。此外,该插件不使用 NSURLProtocol 类,而是使用它下面的网络层。所以插件发出的请求,不要通过 NSURLProtocol。考虑到这一点,您的情况可能存在两个问题。1. 您使用的 HTTP 服务器可能不支持部分响应。2. 无法直接访问 HTTP 服务器(您可以从 safari 或任何其他访问视频吗?
您设备上的浏览器?)您可以通过网络跟踪来验证这两种情况。使用 tcpdump(在 Mac 上可用)进行网络跟踪并查看那里发生了什么。

于 2014-04-04T11:01:28.717 回答