ios - 在 iOS 中使用带有 AVPlayer 的固定证书
问题描述
有没有办法让 AVPlayer 在 iOS 中强制执行证书固定?
我们的视频加载代码基本上是:
let url = URL(string: "https://www.example.com/file.mp4")!
let item = AVPlayerItem(url: url)
我们可以使用此委托方法使用 URLSession 进行证书固定:https ://developer.apple.com/documentation/foundation/urlsessiondelegate/1409308-urlsession 。但是我还没有为 AVPlayer 找到一种类似的方法,如果有的话。
谢谢你的帮助!
解决方案
实现的相关方法应该是AVAssetResourceLoaderDelegate
(文档)中的这个:
optional func resourceLoader(_ resourceLoader: AVAssetResourceLoader,
shouldWaitForResponseTo authenticationChallenge: URLAuthenticationChallenge) -> Bool
在您的情况下,直接创建一个AVURLAsset
,并在其资源加载器上设置您的委托实现。然后使用资产初始化播放器项目。
let url = URL(string: "https://www.example.com/file.mp4")!
let urlAsset = AVURLAsset(url: url)
urlAsset.resourceLoader.setDelegate(resourceLoaderDelegate,
queue: .main)
let item = AVPlayerItem(asset: urlAsset)
推荐阅读
- anaconda - Jupyter 笔记本,在哪里?
- c# - UWP 如何通知进程终止?
- javascript - 设法在html页面中下载文件依赖项
- angular - rxjs/operators:找不到模块
- java - Java编写仅在编译时运行的代码?
- php - 从xml填充数组?PHP/XML
- javascript - 使用 fetch POST 数据后自动刷新
- vb.net - form_load 选择行(richtextbox),表单暂时失去焦点,返回选择整个richtextbox
- python-3.x - 如何在 anaconda 3.6 windows 10 中安装 pytorch 版本 0.1.12?
- c - C 程序的意外输出