如何从avplayer获取存储在hls播放列表CHARACTERISTICS字段中的信息

pdr*_*rod 6 http-live-streaming ios avplayer

我试图猜测某个字幕是否有可访问性选项来显示我正在处理的UI层中的信息.

我正在使用Apple的示例流bipbop:

https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
Run Code Online (Sandbox Code Playgroud)

该播放列表有几个字幕,其中一些具有可访问性特征,例如:

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"
Run Code Online (Sandbox Code Playgroud)

您可以看到它具有以下特征:

CHARACTERISTICS="public.accessibility.transcribes-spoken-dialog, public.accessibility.describes-music-and-sound"
Run Code Online (Sandbox Code Playgroud)

从应用程序的角度来看,我使用这段代码检索所有字幕:

AVMediaSelectionGroup * subtitleSelectionGroup = [asset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicLegible];
for (AVMediaSelectionOption * subtitleOption in subtitleSelectionGroup.options) {
    NSLog(@"%@", subtitleOption);
}
Run Code Online (Sandbox Code Playgroud)

这是从我们讨论的字幕创建的AVMediaSelectionOption的输出:

<AVMediaSelectionKeyValueOption: 0x14785320, locale = en, mediaType = 'sbtl', tagged media characteristics = {public.accessibility.transcribes-spoken-dialog, public.accessibility.describes-music-and-sound}, title = English, default = YES> 
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,AVPlayer正在向我报告该字段中的信息

标记媒体特征= {public.accessibility.transcribes-speaking-dialog,public.accessibility.describes-music-and-sound}

因为我可以在NSLog的输出中看到它

问题是,如何从代码中查询?AVMediaSelectionOption类中是否有任何特定字段?找不到一个

谢谢!