Hi All! Im try use AVPlayer for IPTV live stream (MacOS App). Use remote server with iptv.m3u file. Remote file iptv.m3u have some code (many streams TV channels):
#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
Im use AVPlayer and initialize with simple code:
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()
}
and player works nice, but im see only "Channel 1" and not selected other! Im have asset, playerItem, player but not understand the way how Im create a channel list (playlist) and select a channel from this playlist to play. Where stored info data about all TV channels after dowloaded remote iptv.m3u file? Please help!