Я пытаюсь воспроизвести прямую трансляцию hls с URL-адреса, который выглядит следующим образом: "http://ip.address:port/my%20video.m3u8". Всякий раз, когда URL-адрес не содержит пробелов, видео воспроизводится нормально, иначе оно не воспроизводится. Не регистрируется ошибка. от плеера, но сам плеер - просто черный экран. Я включил «Разрешить произвольные загрузки» и все еще не играю в кости. Когда я пытаюсь загрузить URL с пробелами в сафари, видео будет воспроизводиться. Вот мой код для загрузки и воспроизведения видео:
DispatchQueue.main.async {
var player = AVPlayer(url: url!)
var playerLayer: AVPlayerLayer!
playerLayer = AVPlayerLayer(player: player)
playerLayer.videoGravity = .resize
self.videoView.layer.addSublayer(playerLayer)
playerLayer.frame = self.videoView.bounds
player.play()
}
То, что я также нахожу странным, это то, что когда я пытаюсь отправить поток на AVPlayerViewController, проигрыватель всплывает, но не воспроизводится. Вот как я отправляю его на контроллер представления:
DispatchQueue.main.async {
let player = AVPlayer(url: urlTwo)
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
player.play()
}
}