I've used the method of saving a local m3u8 file in temp folder to play a stream.
I use this method as a way to select a specific video profile (360p, 720p, 1080p).
From a web hosted m3u8, i parse the m3u8 and then make another local m3u8 file with the specific video profile.
The issue is in iOS9, when trying to play an NSUrl which is a file url, i dont receive AVPlayerItemStatusReadyToPlay.
Sample web m3u8
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group00",NAME="lang",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="th",URI="https://somevideostreamurl.com/GetleafIndex05.aspx?token=tokenhere"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group00",NAME="lang",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="en",URI="https://somevideostreamurl.com/GetleafIndex06.aspx?token=tokenhere"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=427136,RESOLUTION=480x270,CODECS="avc1.4d4015,mp4a.40.5",AUDIO="group00"
https://somevideostreamurl.com/GetleafIndex01.aspx?token=tokenhere
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=735456,RESOLUTION=640x360,CODECS="avc1.4d401e,mp4a.40.5",AUDIO="group00"
https://somevideostreamurl.com/GetleafIndex02.aspx?token=tokenhere
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1248320,RESOLUTION=854x480,CODECS="avc1.64001e,mp4a.40.5",AUDIO="group00"
https://somevideostreamurl.com/GetleafIndex03.aspx?token=tokenhere
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2173280,RESOLUTION=1024x576,CODECS="avc1.64001f,mp4a.40.5",AUDIO="group00"
https://somevideostreamurl.com/GetleafIndex04.aspx?token=tokenhereSample local file m3u8
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group00",NAME="lang",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="th",URI="https://somevideostreamurl.com/GetleafIndex05.aspx?token=tokenhere"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group00",NAME="lang",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="en",URI="https://somevideostreamurl.com/GetleafIndex06.aspx?token=tokenhere"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1248320,RESOLUTION=854x480,CODECS="avc1.64001e,mp4a.40.5",AUDIO="group00"
https://somevideostreamurl.com/GetleafIndex03.aspx?token=tokenhereResolution options:
- apple will fix the issue
- find out the reason why it can't play local m3u8, with a workaround solution
- suggest other ways to provide selecting video profiles from a web m3u8 without resorting to using a local m3u8