HLS видео не воспроизводится на симуляторе и реальном устройстве - PullRequest
0 голосов
/ 26 октября 2018

Я работаю над приложением для iOS, которое просто воспроизводит видео HLS в прямом эфире.

Моя проблема в том, что я использовал AVPlayer и контроллер представления для настройки игровой площадки. Все работает нормально, контроллер представления запущен, проигрыватель также запущен, но потоковая передача не начинается. Поток - это тип .m3u8, который отлично работает в сафари и хроме. IOS не показывает мне видео ни на симуляторе, ни на реальном устройстве.

Я также искал другие решения SO, но ни один из них не работал у меня.

 /* Button to play live news streaming */
@IBAction func liveNews(_ sender: Any)
{
    guard let NewsUrl = URL(string: "http://cdn39.live247stream.com/A1TVuk/tv/playlist.m3u8")
        else {
            return }

    /* Create an AV PLAYER and passed the HLS URL to it */
    let player = AVPlayer(url: NewsUrl)
    player.allowsExternalPlayback = true

    /* Setup a player view controller to handle the stream */
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player

    /* Using method of play() to load and play the stream  */
    present(playerViewController, animated: true){
    playerViewController.player?.play()
    }

1 Ответ

0 голосов
/ 27 октября 2018

Я использовал HTTP URL, который не защищен, поэтому он не позволяет устройству или симулятору воспроизводить его. Я установил исключение, чтобы разрешить небезопасные протоколы, которые позволяют iOS плавно передавать HLS.

 <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <true/>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <key>NSIncludesSubdomains</key>
        <true/>
    </dict>

enter image description here

...