使用 AVPlayer 的直播未在 iOS 11 中播放

Live stream using AVPlayer not playing in iOS 11

我正在尝试从远程播放音乐 url。我正尝试 运行 在 iOS 11 中播放此音乐,但它无法播放音乐。

ViewController

var session = AVAudioSession.sharedInstance()

var LQPlayer: AVPlayer?
let LOW_URL = URL(string: "http://someLInk.pls")! // not an original url provided at this time.

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.avPlayerSetup()
    }
    
    func avPlayerSetup() {
        do {
            try session.setCategory(AVAudioSessionCategoryPlayback)
            try session.overrideOutputAudioPort(.none)
            try session.setActive(true)
        } catch {
            print("AVPlayer setup error \(error.localizedDescription)")
        }
    }
    
    func initPlayer() {
            LQPlayer = AVPlayer(url: LOW_URL)
            print("player allocated")
    }
    
    func deAllocPlayer() {
            LQPlayer = nil
            print("player deallocated")
    }

    @IBAction func playBtn(_ sender: Any) {
        initPlayer()
        LQPlayer?.play()
    }
    
    @IBAction func pauseBtn(_ sender: Any) {
        LQPlayer?.pause()
        deAllocPlayer()
    }
}

我在 info.plist 中将 Allow Arbitrary Loads 设置为 YES。
上面的代码 URL 我给出的是虚拟的。实际 url 工作正常。

实时视频流的工作代码

    @IBOutlet weak var player_View: UIView!
    var LQPlayer: AVPlayer?
    let LOW_URL = URL(string:"http://www.streambox.fr/playlists/test_001/stream.m3u8")!


    override func viewDidLoad() {
        super.viewDidLoad()

       self.avPlayerSetup()

         LQPlayer = AVPlayer.init(url: LOW_URL)
         let avPlayerView  = AVPlayerViewController()
         avPlayerView.view.frame = self.player_View.bounds
         avPlayerView.player = LQPlayer

        self.player_View.addSubview(avPlayerView.view)

    }

    func avPlayerSetup() {

         do {
            try audioSession.setCategory(AVAudioSessionCategoryPlayback)
           try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker)
            try audioSession.setActive(true)
        } catch {
            print("AVPlayer setup error \(error.localizedDescription)")
        }

    }

    func initPlayer() {
        LQPlayer = AVPlayer(url:LOW_URL)
        print("player allocated")
    }

    func deAllocPlayer() {
        LQPlayer = nil
        print("player deallocated")
    }

    @IBAction func playBtn(_ sender: Any) {
     //   initPlayer()
        LQPlayer?.play()
    }

    @IBAction func pauseBtn(_ sender: Any) {
        LQPlayer?.pause()
        deAllocPlayer()
    }