#swift #avplayer #http-live-streaming #playlist #m3u
Вопрос:
Возможно, это простой вопрос. Я пытаюсь использовать AVPlayer для прямой трансляции IPTV. Используйте удаленный сервер с файлом iptv.m3u. Инициализируйте плеер с помощью простого кода:
class VideoItem: ObservableObject {
@Published var player: AVPlayer = AVPlayer()
@Published var playerItem: AVPlayerItem?
let myURL = URL(string: "http://iptv.myserver.net/iptv.m3u")! //not real url
let asset = AVURLAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
self.playerItem = playerItem
player.replaceCurrentItem(with: playerItem)
player.play()
}
удаленный файл iptv.m3u содержит некоторый код:
#EXTM3U url-tvg="http://iptv.myserver.net/epg.xml" m3uautoload="1" deinterlace="7" aspect-ratio="none" cache="2000" tvg-shift="0"
#EXTINF:0 tvg-id="9929" tvg-name="9929" audio-track="en" group-title="World News" id="vsetv_9929" tvg_logo="http://iptv.myserver.net/myiptv/icons/9929.png", Channel 1
http://iptv.myserver.net:8081/Channel1
#EXTINF:0 tvg-id="9930" tvg-name="9930" audio-track="en" group-title="World News" id="vsetv_9930" tvg_logo="http://iptv.myserver.net/myiptv/icons/9930.png", Channel 2
http://iptv.myserver.net:8081/Channel2
#EXTINF:0 tvg-id="9932" tvg-name="9932" audio-track="en" group-title="World News" id="vsetv_9932" tvg_logo="http://iptv.myserver.net/myiptv/icons/9932.png", Channel 3
http://iptv.myserver.net:8081/Channel3
...
...
#EXTINF:0 tvg-id="3542" tvg-name="3542" audio-track="en" group-title="Cartoons" id="vsetv_3542" tvg_logo="http://iptv.myserver.net/myiptv/icons/3542.png", Channel 254
http://iptv.myserver.net:8081/Channel254
и это хорошо работает, но я вижу только «Канал 1»!
Я asset, playerItem, player
знаю, но не понимаю, как создать список каналов (плейлист) и выбрать канал из этого списка для воспроизведения.
Пожалуйста, помогите!