NSURLProtocol对视频请求失败

时间:2014-02-24 18:17:50

标签: ios iphone ipad nsurlprotocol

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

类似问题:Custom NSURLProtocol class for WebView doesn't work when loading video in HTML5 document,但遗憾的是没有答案。

1 个答案:

答案 0 :(得分:1)

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