相关疑难解决方法(0)

iOS 10下载加密的HLS流

我目前正在尝试将加密的HLS流下载到iOS设备.iOS 10似乎支持开箱即用(请参阅https://developer.apple.com/videos/play/wwdc2016/504),但我无法让它工作.我基本上是用AssetPersistenceManager来自苹果的示例代码(https://developer.apple.com/library/content/samplecode/HLSCatalog/Introduction/Intro.html),它调用makeAssetDownloadTaskAVAssetDownloadURLSession.它在在线模式下工作正常,但从存储的文件播放资源时播放失败.

现在,WWDC视频表明您应该使用AVAssetResourceLoaderDelegate提供脱机加密密钥.由于HTTP和HTTPS似乎不被支持AVAssetResourceLoader(见例如不工作的设备AVAssetResourceLoaderDelegate方法),我尝试使用该键URI自定义方案,并提供在本地AES密钥shouldWaitForLoadingOfRequestedResourceAVAssetResourceLoaderDelegate.这里也适用于在线流媒体,但无论我是使用远程密钥URL还是使用本地密钥覆盖它,AVPlayer始终无法离线播放AVAsset.

有没有人有下载加密HLS的经验,或者有一个关于如何提供加密密钥以便离线播放本地加密AVURLAsset的工作示例?

我正在使用的示例HSL文件位于:http://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-aes.ism/.m3u8

iphone encryption offline ios avplayer

6
推荐指数
1
解决办法
874
查看次数

AVAssetResourceLoaderDelegate未被调用

我一直试图在AVAssetResourceLoaderDelegate协议上得到一些消息,但它似乎永远不会被调用.我已经验证了主线程上发生的一切; 从创建AVURLAsset,创建AVPlayerItem,创建委托,并将委托队列设置为主线程.我正在尝试流式传输网络托管的MP4内容和未加密的HLS内容.

我的声明:

@property (readwrite, strong) AVPlayer* player;
@property (strong) AVPlayerItem* playerItem;
@property (strong) id<AVAssetResourceLoaderDelegate> resourceLoaderDelegate;
Run Code Online (Sandbox Code Playgroud)

播放视频的代码:

AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];
...
self->_resourceLoaderDelegate = [[MyAssetResourceLoaderDelegate alloc] init];
[asset.resourceLoader setDelegate:self->_resourceLoaderDelegate
                            queue:dispatch_get_main_queue()];
...
self->_playerItem = [AVPlayerItem playerItemWithAsset:asset];
...
[self setPlayer:[AVPlayer playerWithPlayerItem:self->_playerItem]];
Run Code Online (Sandbox Code Playgroud)

但是,resourceLoader:shouldWaitForLoadingOfRequestedResource:永远不会被调用(任何其他委托方法都没有).

为了清楚起见,我正在使用iOS模拟器以及运行iOS 8的iPhone 5s进行测试(结果看起来相同).

我已经验证所有代码都在主线程上执行,因为我在这个问题中读到所有内容都必须在同一个线程上.

有没有人有任何建议,或者可能是对这个委托实际被调用的一些可用源代码的引用?

更新:我确定当url是本地文件时,此代码可以正常工作,但是当它到达远程文件时仍然无法正常工作.这是预期的行为还是有办法我可以为远程文件执行此操作?

delegates objective-c avfoundation http-live-streaming ios

4
推荐指数
1
解决办法
2981
查看次数