我想在我的ios应用程序中使用视频播放器(我使用xcode版本9.2和swift版本4)。它必须播放来自互联网的m3u8视频。我使用下面的代码:
import UIKit
import AVKit
import AVFoundation
class ViewControllerPlayer: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let videoURL = URL(string: "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
let video = AVPlayer(url: videoURL!)
let videoPlayer = AVPlayerViewController()
videoPlayer.player = video
present(videoPlayer, animated: true, completion: {
video.play()
})
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
}
}
但不幸的是,在编译我的应用程序崩溃后并没有播放视频。然后我将代码从viewDidLoad()
方法转移到viewDidAppear()
。但是没有效果。那么,我如何在我的ios应用程序中播放来自互联网的视频?感谢。
答案 0 :(得分:0)
present
方法的文档说明了以下completion
:
演示结束后要执行的块。该块没有返回值,不带参数。您可以为此参数指定nil。
将video.play()
移到present
之上,它应该有效。
但是您使用的是HTTP,因此ATS会抱怨并且不会显示视频。
将以下代码添加(BAD PRACTICE)到Info.plist
以禁用ATS:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>