【问题标题】:In Objective C, how to play a video file in NSData without saving as a local file?在Objective C中,如何在NSData中播放视频文件而不保存为本地文件?
【发布时间】:2017-01-09 10:23:45
【问题描述】:

我正在开发一个在 UIWebview 中显示机密数据的应用程序。所有数据都无法存储在设备上。

我可以直接通过 NSData 显示内容和图形,我现在正在开发视频播放器。但是我发现它总是需要本地文件路径或 URL 才能播放。

例如:

[Webview loadHTMLString:strVedio baseURL:[NSURL fileURLWithPath:path]];

请问有没有办法直接从NSData播放视频文件?谢谢。

【问题讨论】:

  • 为什么不用remote url来播放视频?你以某种方式获得了视频 - 你首先将它从远程下载到 NSData,所以只需将该 url 传递给 loadHTMLString: baseURL:
  • 这是因为视频数据嵌入和加密的项目数。我无法有一个简单的 URL 来处理这个视频文件。感谢您的回复!

标签: ios video uiwebview


【解决方案1】:

您可以尝试构建一个像代理一样工作的内部服务器,以便对数据的每个请求都将通过您在本地主机中的代理服务器,正如此处建议的https://stackoverflow.com/a/20952163/7361753。有了这个,您将有一个 url 供 AVPlayer 直接播放来自 NSData 的视频,因为代理将数据流传输到它。我已经在我的 Swift 3 项目中使用这个模块 https://github.com/httpswift/swifter 尝试过这个,它工作得很好,但是如果你想异步工作,这样数据还没有按要求准备好,你可能需要破解模块一点点,这样套接字在发出第一个响应后就不会关闭。

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多