-1

我想在我的 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 应用程序中播放来自互联网的视频?谢谢。

4

1 回答 1

0

方法文档对present以下内容进行了说明completion

演示结束后要执行的块。该块没有返回值,也没有参数。您可以为此参数指定 nil。

移到video.play()上面present,它应该可以工作。

但是,您使用的是 HTTP,因此 ATS 会抱怨它并且不会显示视频。

添加(不良做法)以下代码到您Info.plist的禁用 ATS:

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSAllowsArbitraryLoads</key>
   <true/>
</dict>
于 2018-01-19T13:55:54.553 回答