我正在尝试使用Swift 4.0编写一个非常简单的Xcode OS X程序 - 这个程序可以构建和运行,但是在访问视频文件的URL时会出现错误。可能与某些特权或安全设置有关,但我无法找到原因所在。以下是我的程序:
class ViewController: NSViewController:
请注意保留HTML标记。
@IBOutlet var playerView: AVPlayerView!
//var url: URL!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// guard let url = URL(string: "https://devimages.apple.com.edgekey.net/samplecode/avfoundationMedia/AVF oundationQueuePlayer_HLS2/master.m3u8")
// else {
// return
// }
let url1 = URL(string: "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")
let player = AVPlayer(url: url1!)
// Create a new AVPlayer and associate it with the player view
let playerView = self.playerView
playerView?.player = player
playerView?.player!.play();
}
同时,我已经修改了info.plist文件,修改如下:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict/>
</dict>
我在尝试访问上述任意一个URL时会出现以下运行时错误,为什么?
2017-11-05 10:12:21.757333-0800 AVPlayer[54381:5617593] startLogging: 日志开始记录... 2017-11-05 10:12:21.758024-0800 AVPlayer[54381:5617612] setMessageLoggingBlock: 已调用 2017-11-05 10:12:21.758520-0800 AVPlayer[54381:5617612] initWithSessionInfo:XPC 连接中断 2017-11-05 10:12:21.758842-0800 AVPlayer[54381:5617612] startConfigurationWithCompletionHandler: 无法获取远程对象代理:Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.rtcreportingd" UserInfo={NSDebugDescription=connection to service named com.apple.rtcreportingd} 2017-11-05 10:12:21.759003-0800 AVPlayer[54381:5617612] startConfigurationWithCompletionHandler: 无法获取远程对象代理:Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.rtcreportingd" UserInfo={NSDebugDescription=connection to service named com.apple.rtcreportingd} 2017-11-05 10:12:21.925221-0800 AVPlayer[54381:5617654] App Transport Security已由于不安全阻止了清晰文本 HTTP(http://)资源加载。可以通过应用程序的Info.plist文件进行临时例外配置。
NSAllowsArbitraryLoads
。感谢@pbodsk! - suomi35