如何在 Swift 中使用 AVPlayer 在 iOS 中播放带有 cookie 内容的视频?

2024-01-01

我使用下面的实现来播放带有来自服务器的 cookie 内容的视频,但它显示带有十字线的播放图标。我已经参考了link https://stackoverflow.com/questions/39722166/how-to-play-protected-video-content-in-ios-using-avplayer并迅速进行以下实施。但我没有得到任何输出:(

func showVideo(url: String) {
  let videoURL = NSURL(string: url)
  var cookiesArray = [HTTPCookie]()
  guard let cookieArray = UserDefaults.standard.array(forKey: 
  Constants.Object.kCookie) as? [[HTTPCookiePropertyKey: Any]] else { 
  return }

  for cookieProperties in cookieArray {
    if let cookie = HTTPCookie(properties: cookieProperties) {
      cookiesArray.append(cookie)
    }
  } 
  let cookieArrayOptions = [AVURLAssetHTTPCookiesKey: cookiesArray]
  let assets = AVURLAsset(url: videoURL! as URL, options: cookieArrayOptions)
  let item = AVPlayerItem(asset: assets)
  videoPlayer = AVPlayer(playerItem: item)

  self.playerController.player =  self.videoPlayer 
  self.playerController.view.frame = self.view.frame
  self.present(self.playerController, animated: true, completion: nil)
  self.playerController.player?.play()
 }

请帮我解决这个问题,该实施有什么问题。

提前致谢! :)


经过很多方法之后,我终于得到了对我有用的解决方案:

     func showVideo(url: String) {
      let videoURL = NSURL(string: url)
      let cookiesArray = HTTPCookieStorage.shared.cookies! //Stored Cookies of your request
      let values = HTTPCookie.requestHeaderFields(with: cookiesArray)// Returns a dictionary of header fields corresponding to a provided array of cookies.ex.["Cookie":"your cookies values"]
      let cookieArrayOptions = ["AVURLAssetHTTPHeaderFieldsKey": values]
      let assets = AVURLAsset(url: videoURL! as URL, options: cookieArrayOptions)
      let item = AVPlayerItem(asset: assets)
      videoPlayer = AVPlayer(playerItem: item)

      self.playerController.player =  self.videoPlayer 
      self.playerController.view.frame = self.view.frame
      self.present(self.playerController, animated: true, completion: nil)
      self.playerController.player?.play()
     }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Swift 中使用 AVPlayer 在 iOS 中播放带有 cookie 内容的视频? 的相关文章

  • 异步任务、视频缓冲

    我正在尝试理解 C 中的任务 但仍然遇到一些问题 我正在尝试创建一个包含视频的应用程序 主要目的是从文件中读取视频 我使用 Emgu CV 并通过 TCP IP 发送它以在板上进行处理 然后以流 实时 方式返回 首先 我是连续做的 所以 读
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 当前位置在 Google 地图中不起作用

    我在 swift 3 中集成了谷歌地图 当地图屏幕出现而不显示当前位置时 我在 plist 文件中添加了两个键 并设置了 CLLocationManager delegate 和 requestAlwaysAuthorization cla
  • 无法转换“String”类型的值?预期参数类型“URL”

    我正在尝试从主包中的文件加载数据 当我使用这段代码时 let path Bundle main path forResource abc ofType txt let dataTwo try Data contentsOf path err
  • Swift 3 的 NSLog 问题

    迁移到 Swift 3 后 当我尝试执行以下操作时出现错误 self publicDB save listRecord completionHandler record error gt Void in if let saveError e
  • 如何执行条件segue

    我通过 IB 创建了一个 segue 单击按钮时 将转换到视图 A 在按钮单击操作中 我有performSegue withIdentifier sender 包裹在一个条件中 我希望仅当条件为真时才发生 segue 但是 一旦用户单击按钮
  • 如何显示AVPictureInPictureController?

    我正在尝试使用播放视频AV画中画控制器最近在IOS9 使用此代码 AVPlayer AVPlayer AVPlayer playerWithURL url AVPlayerLayer layer AVPlayerLayer playerLa
  • Swift 3 中的 NSFetchedResultsController 删除缓存

    目前正在迁移到 swift 3 无法完全弄清楚解析器想要什么NSFetchedResultsController deleteCache withName rootCache 使用这种语法 我得到一个 Type String 构建时出现不符
  • 标头和 cookie 中的 CSRF 令牌在请求中不匹配

    我正在实现一个无状态 API 我的组织表示我需要防止 CSRF 攻击 我在网上找到了这个人的解决方案 并决定尝试实施仅客户端的方法 http blog jdriven com 2014 10 stateless spring securit
  • 无需画布/显示器即可拍摄隐形 WebRTC/视频照片

    我读了拍摄静态照片 https developer mozilla org en US docs Web API WebRTC API Taking still photos来自 MDN 的描述如何从网络摄像头捕获照片 使用视频元素和med
  • Swift 3 中数组的 indexOf(_:) 方法的替换

    在我的项目 用 Swift 3 编写 中 我想使用从数组中检索元素的索引indexOf 方法 存在于 Swift 2 2 中 但我找不到任何替代方法 Swift 3 中是否有任何好的替代方法或类似的方法 Update 我忘记提及我想在自定义
  • AVPlayer 不播放音频 - iOS 9,目标 - C

    我正在尝试从我的应用程序中的 URL 播放音频 iOS 8 中一切都按预期发生 模拟器和物理设备 对于 iOS 9 它可以在模拟器中运行 但在设备上 音频根本无法播放 出现流媒体 如果我单击播放 进度条还显示音频正在加载并播放 但没有声音
  • 黑莓上的视频流

    有没有办法从服务器流式传输和播放视频文件 黑莓是否提供可以播放流视频的内置视频播放器 是的你可以 在 bb 设备上串流视频有两种方法 使用 jsr 135 中的 javax microedition media Player 使用标准媒体应
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • Swift 3:如何去除UITableView屏幕截图的灰色区域

    我在从桌面视图的屏幕截图中删除灰色区域时遇到了问题 这是我尝试截图时的输出UITableView 实际上我隐藏了一些tableViewCell这是不需要的 可能这就是区域显示灰色的原因 任何帮助表示赞赏 非常感谢 Answer 我通过使用
  • 按范围迭代数组

    我有一个数组 1 2 3 4 5 6 100 我希望将此数组迭代 5 次 具体来说 取数组的前 5 个数字并获取平均值 继续处理接下来的 5 个数字并获取平均值 依此类推 我尝试过多种方法 例如Dequeue和 for 循环但未能获得所需的
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa
  • 在 ASP.NET 中实现“记住我”功能

    实施的最佳方式是什么 remember me ASP NET 网站上的功能 我应该使用自定义cookie还是有更简单的方法 您是否使用内置的AuthenicationASP NET 提供的服务 如果是这样 那就很容易了
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有

随机推荐