我想知道如何在 iOS 的 UIWebView 中嵌入的 MPMoviePlayerController 中执行网络流式传输。它是使用套接字还是任何其他方法执行的?
首先请理解我的问题,我正在 UIWebView 中播放 youtube 视频。当视频加载并开始播放时,MPMoviePlayerController(或类似的东西)会自动实例化。现在问题是我想通过我的代理服务器传递所有 url 以及一些私人消息。我正在使用以下方法:
方法 1
创建我自己的自定义 NSURLProtocol 类并拦截每个请求,然后打开一个套接字,编写我的私人消息,然后编写 GET/POST 消息并将响应传递给 webview。一切正常。但是当视频开始播放时,我们没有收到 url 请求,所以很难追踪 url 正在通过我的代理。
我在 SO 中读到 MPMoviePlayerController 不符合 NSURLProtocol,因此我们无法拦截通过视频控制器的请求流。链接在这里:
如何使用自定义 NSURLProtocol 播放带有 URL 的电影?
方法 2
我重写 connect()、write() 和 read() 方法,然后打印日志以查看视频数据是否流经 read() 和 write() 方法。但我仍然没有得到预期的结果。我的所有其他网络请求都通过这些覆盖的方法,但只有 VideoData 没有显示,这意味着 MPMoviePlayerController 没有使用套接字和读取、写入方法。或者 Webview 在内部启动另一个进程来实例化 Player。
我如何确保 MPMoviePlayerController 没有在内部创建新进程。
如果有人知道如何实现这一点,请分享。任何帮助表示赞赏。我陷入了困境。