【发布时间】:2012-04-02 05:07:28
【问题描述】:
我正在实现一个包含视频播放器的应用程序。由于某些原因,视频文件使用 AES 加密,并且这些文件的大小可能相当大,以避免将其作为一个整体加载到 RAM 中。我正在寻找用 AVPlayer 播放它的方法。
试过了:
1) 此处建议的自定义 NSURLProtocol http://aptogo.co.uk/2010/07/protecting-resources/ 没用,我建议 AVPlayer 使用它自己的,我的不被调用。
2) 使用 AVAsset 将视频切成小块,然后将它们提供给 AVPlayer - 失败,因为 AVPlayer 中没有用于此的 API。
任何解决方法将不胜感激:)
【问题讨论】:
-
如果您有加密文件,我们应该至少知道格式等。您是否考虑过创建一个进行解密的代理?您的期望/用例(寻求等)是什么?
-
我不太明白,你的意思是什么。您提供创建代理,但是为了什么?在我看来,有以下算法: 1. 捕获 AVPlayer 尝试通过 url 加载的加密数据。 2. 解密。 3.将解密后的数据放入AVPlayer。很可能是错的,因为 AVPlayer 没有任何数据提供者。但我不知道其他方式。
-
您可以创建一个连接到实际内容的 Web 代理,并将 URL 指向解密数据的本地服务。这样就可以解耦加解密和播放视频。
-
你有什么运气吗?我处于同样的情况,除了音频文件......我已经实现了一个自定义 NSURLProtocol 类,但它永远不会被调用。
-
我正在经历“使用 AVPlayerItemVideoOutput 进行实时视频处理”,也许可以帮助developer.apple.com/library/ios/samplecode/AVBasicVideoOutput/…
标签: objective-c encryption avplayer