我在通过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上可用)进行网络跟踪,看看那里发生了什么。