I have a problem: I have a m3u8 file format, for example:
http://XXX.XXX.XX.XXX:31213/MEDIA/76336503.....583609776254/161/4161/
http://XXX.XXX.XX.XXX:31213/MEDIA/76336503.....583609776254/161/3161/
http://XXX.XXX.XX.XXX:31213/MEDIA/76336503.....583609776254/161/2161/
Each EXT-X-STREAM-INF link for a file, for example:
#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:35156
#EXT-X-START:TIME-OFFSET=-25,PRECISE=YES
#EXT-X-KEY:METHOD=AES-128,URI="http://XXX.XXX.XX.XXX:02444/xxXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/191/2191/aeskey_191_
#EXTINF:5,
http:
#EXTINF:5,
http:
#EXTINF:5,
http:
#EXTINF:5,
http:
#EXTINF:5,
http:
Audio and subtitles are embedded in the TS file. Since the audio / subtitle tracks are not explicitly specified in the #EXT tag in the above * .m3u8 file, 'mediaSelectionGroupForMediaCharacteristic' returns an empty collection of options.
Otherwise, the m3u8 file:
https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
provided by Apple as an example of an HLS playlist, contains the audio / subtitle tracks described in the #EXT tags:
#EXTM3U
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="bipbop_audio",LANGUAGE="eng",NAME="BipBop Audio 1",AUTOSELECT=YES,DEFAULT=YES
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="bipbop_audio",LANGUAGE="eng",NAME="BipBop Audio 2",AUTOSELECT=NO,DEFAULT=NO,URI="alternate_audio_aac_sinewave/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog, public.accessibility.describes-music-and-sound",URI="subtitles/eng/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English (Forced)",DEFAULT=NO,AUTOSELECT=NO,FORCED=YES,LANGUAGE="en",URI="subtitles/eng_forced/prog_index.m3u8"
This time, "mediaSelectionGroupForMediaCharacteristic" returns a collection that includes two audio options that I can select successfully.
. AVPlayer /, #EXT *.m3u8, *.ts ? , !