【问题标题】:Video is not playing on AVPlayer视频未在 AVPlayer 上播放
【发布时间】:2022-01-17 16:55:04
【问题描述】:

我正在尝试使用 AVPlayer 播放来自 url 的视频。

但视频没有播放。 因为视频网址是“不安全的”(不安全)。 但我已经允许NSAppTransportSecurity

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

这里查看控制器代码

  import AVKit
  import AVFoundation

  let playerViewController = AVPlayerViewController()


  let url =  Constants.API.imageURL + (GlobalVariables.sharedManager.userDetailObj.UserDetail?.intro_video_path)! //which is "http://23.97.79.216:8000/api/media/intro-video/video_file_2rg3tio.mp4"

  //let videoURL = URL(string: "http://jplayer.org/video/m4v/Finding_Nemo_Teaser.m4v") //testing unsecure(Not Secure) url which is working.
  let videoURL = URL(string: url)
  let player = AVPlayer(url: videoURL!)
  playerViewController.player = player
  self.present(playerViewController, animated: true) {
     self.playerViewController.player!.play()
  }

正如我在代码中提到的 "http://jplayer.org/video/m4v/Finding_Nemo_Teaser.m4v" 不安全(不安全),但它工作正常。

但我的网址 “http://23.97.79.216:8000/api/media/intro-video/video_file_2rg3tio.mp4” 不起作用。

有什么方法可以播放不安全(不安全)网址的视频?

【问题讨论】:

  • @matt 它将来自Constants.API.imageURL + (GlobalVariables.sharedManager.userDetailObj.UserDetail?.intro_video_path)!
  • @matt 你测试我的代码了吗?请再次检查我的代码。
  • 我认为问题不在于您的 iOS 代码,可能是您的服务器有问题。尝试添加允许所有来源的访问控制。
  • 此链接是否在 safari 中打开?
  • @RajeshBudhiraja 不,它在模拟器 safati 中不起作用。

标签: ios swift avplayer avplayerviewcontroller


【解决方案1】:

您的问题似乎是无法使用的链接无法升级到https。

原因:

出于安全原因,iOS 不允许 http url 请求。 (https://developer.apple.com/documentation/security/preventing_insecure_network_connections)

这意味着如果您尝试访问使用 http 而不是 https 的资源,iOS 将尝试自动将其升级到 https。如果您转到浏览器中的第二个链接,并添加 https 传输协议,该链接仍然有效。该服务器可以处理 SSL 连接(这是安全的)。但是,您的第一个链接无法升级到 https,并且总是会失败。

解决方案

如果此服务器(第一个已损坏的链接)是您拥有的,请添加 SSL 安全性。这很容易解决。如果您无权访问它,则需要下载视频并将其托管在具有 SSL 安全性的地方。

解决方法

遗憾的是,除了自己托管之外,没有任何解决方法。 Apple 根本不允许 http 请求,因为它们可以使用中间人攻击对用户设备发起攻击。

【讨论】:

  • 现在向服务器添加 SSL 也是免费的。如果它是您的,则没有理由不将其添加到您的服务器。 letsencrypt.org
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 2016-04-17
相关资源
最近更新 更多