AVPlayerItem 的 selectedMediaOption(in:) 与 seek(to:) 调用后的可用选择选项不一致
Posted
技术标签:
【中文标题】AVPlayerItem 的 selectedMediaOption(in:) 与 seek(to:) 调用后的可用选择选项不一致【英文标题】:AVPlayerItem's selectedMediaOption(in:) disagrees with available selection options following seek(to:) call 【发布时间】:2018-07-09 21:52:55 【问题描述】:我在AVAsset
上的loadValuesAsynchronously(forKeys:)
的完成块中遇到AVFoundation
的一个奇怪问题,键为"availableMediaCharacteristicsWithMediaSelectionOptions"
,我正在检查组中可用媒体选择选项的值.legible
特征,以及该组中当前选择的媒体选项(通过selectedMediaOption(in: group)
。当我打印这些输出时,我得到以下输出(数组是可用的选择选项,然后是当前选择):
(
"<AVMediaSelectionKeyValueOption: 0x60c002078380, language = en-IE, mediaType = 'sbtl', title = English+(Ireland)>",
"<AVMediaSelectionKeyValueOption: 0x60c002078440, language = ab, mediaType = 'sbtl', tagged media characteristics = public.accessibility.transcribes-spoken-dialog, public.accessibility.describes-music-and-sound, title = Abkhazian>"
)
<AVMediaSelectionKeyValueOption: 0x60c00207b640, language = en-IE, mediaType = 'sbtl', title = English+(Ireland)>
如您所见,所选选项与数组中的en-IE
选项具有相同的信息,但由于地址不同,它实际上是一个不同的AVMediaSelectionOption
实例。这会在 AVPlayerItem
对象的状态更改后立即发生,以防影响任何事情。选择的选项稍后会更新吗?有没有人看起来像这样?
【问题讨论】:
【参考方案1】:所以看起来答案是AVMediaSelectionGroup
(以及它包含的AVMediaSelectionOptions
)的身份随着对.mediaSelectionGroup(forMediaCharacteristic:)
的每次调用而改变。这意味着即使该组将包含所有相同的信息,它也不会是与上一次调用中的实例相同的实例。
【讨论】:
以上是关于AVPlayerItem 的 selectedMediaOption(in:) 与 seek(to:) 调用后的可用选择选项不一致的主要内容,如果未能解决你的问题,请参考以下文章