воспроизвести файл m3u8 в iOS - PullRequest
1 голос
/ 27 января 2020

Я знаю, что этот вопрос задавался много раз, но не нашел правильного решения,

У меня есть один файл m3u8, который не работает в AVPlayer, но если я использую другой файл m3u8, который уже был на inte rnet, то отлично работает с AVPlayer, вот мой код

func playVideo() {
    let videoURL = URL(string: "https://architectsummit.s3.us-east-2.amazonaws.com/hls/playlist-with-vtt.m3u8")
    let player = AVPlayer(url: videoURL!)
    var playerViewController = AVPlayerViewController()
    playerViewController.player = player
    DispatchQueue.main.async {
        self.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }
    }
}      

в коде выше, я использовал файл m3u8, предоставленный нашим разработчиком, но если я использую этот URL 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8' в Приведенный выше код воспроизводит видео, которое может помочь любому.

1 Ответ

1 голос
/ 27 января 2020

Я воспользовался ссылкой .m3u8 в браузере, и загружаемый манифест неверен. Ответ манифеста -

#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI=vtt_en.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=864000,SUBTITLES="subs" 
                hls-medium.m3u8

, а формат манифеста должен быть примерно таким: этот

. Файл .m3u8 сервера не содержит списка воспроизведения

Кроме того, поскольку вы используете Amazon, вы можете проверить некоторые примеры из Amazon page

...