Следуя вашему примеру, я могу воспроизвести этот контент на устройстве (не на симуляторе)
Обратите также внимание, что я изменил URL с HTTP на HTTPS!
import UIKit
import AVFoundation
class ViewController: UIViewController {
let videoURL = URL(string: "https://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_fmp4.m3u8")
let avPlayer = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
let asset = AVAsset(url: videoURL!)
let playerItem = AVPlayerItem(asset: asset)
avPlayer.replaceCurrentItem(with: playerItem)
let avLayer = AVPlayerLayer(player: avPlayer)
avLayer.frame = view.bounds
view.layer.addSublayer(avLayer)
avPlayer.play()
}
}
Примечание:
НЕОБХОДИМО, чтобы формат контейнера для видео HEVC был fMP4.
Существует несколько способов доставки контента HEVC впользователи:
- HEVC в HLS с использованием фрагментов транспортного потока MPEG-2, которые Apple не поддерживает
- HEVC в HLS с использованием сегментов fMP4, что Apple анонсировала на WWDC17 и нашихплеер поддерживает
- HEVC в MPEG-DASH с использованием сегментов fMP4
Для справки: WWDC17 - HEVC с HLS - Apple только что анонсировала функцию, которую мы поддерживаем из коробки
HLS Авторская спецификация для устройств Apple