在 iPhone MPMoviePlayerController 上播放字节流
我有一个字节流,代表带有 H264 视频和 AAC 音频的电影。我使用 RTMP 库 (rtmp-dump) 获取它,数据通过网络传输到我的 iOS 模拟器。
但是我不知道如何向用户显示它。 MPMoviePlayerController 似乎只接受 URL。有没有办法通过提供类似 NSPipe 或类似播放器的东西来播放视频?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试实现自定义 URL 协议(请参阅 NSURLProtocol)。基本上,您创建协议并注册它,然后任何加载具有此协议的 url 的应用内请求都将被路由到您的协议实例。您可能必须模仿 HTTP 服务器为渐进式下载文件发送的响应。
如果 MPMoviePlayerController 使用较低级别的 CFNetwork 调用而不是 NSURLConnection 来发出请求,则这将不起作用。这个问题意味着 MPMoviePlayerController 确实使用了 NSURLConnectino: 如何使用自定义 NSURLProtocol 播放带有 URL 的电影?
另请阅读 URL 加载系统 文档。
You could try implementing a custom URL protocol (see NSURLProtocol). Basically you create the protocol and register it, then any in-app requests to load a url having this protocol will be routed to your protocol instance. You'd likely have to mimic the responses that a HTTP server would send for a progressive-download of the file.
This wont work if MPMoviePlayerController uses lower-level CFNetwork calls vs. NSURLConnection to make its requests. This question implies that MPMoviePlayerController DOES make use of NSURLConnectino: How to play movie with a URL using a custom NSURLProtocol?
Also read the URL Loading System docs.