首页 > 解决方案 > Swift - AVPlayer 加载失败并出现错误错误域 = NSURLErrorDomain 代码 = -999 “已取消”

问题描述

我尝试从 url 字符串播放视频。但是我在问题标题中遇到了一些错误。

我在下面尝试此代码。videoPath 是一个 url 字符串。

let videoURL = URL(string: videoPath)
        let player = AVPlayer(url: videoURL!)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }

以下是错误日志:

加载失败,错误域=NSURLErrorDomain 代码=-999 “取消” UserInfo={NSErrorFailingURLStringKey= http ://b...a.mp4,NSErrorFailingURLKey= http://b...a.mp4,_NSURLErrorRelatedURLSessionTaskErrorKey= (" LocalDataTask <841B2FFA-479B-4E5A-9BD3-D9207EAA0D32>.<2>" ), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <841B2FFA-479B-4E5A-9BD3-D9207EAA0D32>.<2>, NSLocalizedDescription=cancelled} [-999]

我设置了 info.plist --

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>www.example.com</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
        </dict>
    </dict>

注意: 10 分钟长的视频会出现此问题。这是正常的吗?

标签: iosswiftavplayeraudiotoolbox

解决方案


你是想展示AVPlayerViewController内在viewDidLoad吗?如果是这样,您可以尝试在将视图控制器的视图添加到窗口层次结构后呈现它 -viewDidAppear例如。请记住,viewDidAppear当您导航回控制器时将调用它,并且将再次触发模态演示。


推荐阅读