我的AVPlayer
应用程序非常小。我使用以下代码播放视频:
if let urlToPlay = URL(string: "http://some_video.m3u8") {
self.player = AVPlayer.init(url: urlToPlay)
self.player!.play()
}
我还在文件“Info.plist”中添加了一些行,以便能够使用HTTP模式播放视频:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
它工作正常。但后来我发现了一个名为NSAllowsArbitraryLoadsInWebContent
的旗帜。我的应用程序中没有任何WKWebView
或UIWebView
个实例,因此我认为使用此标志不会导致应用程序出现任何崩溃或错误。现在我的文件“Info.plist”有这个片段:
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
玩家没有工作。有人能解释我为什么会这样吗?
答案 0 :(得分:0)
通过AVFoundation加载媒体添加密钥NSAllowsArbitraryLoadsForMedia
并将其设置为true。
根据文件:
在iOS 10及更高版本中,以及macOS 10.12及更高版本,此键的值 被忽略 - 导致其默认密钥的有效值 NO的值 - 如果您的应用程序中存在以下任何键 Info.plist文件:
NSAllowsArbitraryLoadsForMedia, NSAllowsArbitraryLoadsInWebContent, NSAllowsLocalNetworking
请注意,在生产中不鼓励设置任意加载,这些标志会触发AppStore审核,并且需要这样做。
如需进一步阅读,请访问ATS Documentation
答案 1 :(得分:0)
Also Create a AVPlayerViewController object to play the Video.
let video = AVPlayer(url: URL(fileURLWithPath:path))
let videoPlayer = AVPlayerViewController()
videoPlayer.player = video
present(videoPlayer, animated:true, completion: {
video.play()
})
Hope this will helps for you.