swift - AVPlayerItem 的 selectedMediaOption(in:) 与 seek(to:) 调用后的可用选择选项不一致
问题描述
我在on an with keyAVFoundation
的完成块中遇到了一个奇怪的问题,我正在检查该组中可用媒体选择选项的值以了解该特征,以及该组中当前选择的媒体选项(通过. 当我打印出这些时,我得到以下输出(数组是可用的选择选项,后跟当前选择):loadValuesAsynchronously(forKeys:)
AVAsset
"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
,以防影响任何事情。选择的选项稍后会更新吗?有没有人看起来像这样?
解决方案
所以看起来答案是AVMediaSelectionGroup
每次AVMediaSelectionOptions
调用.mediaSelectionGroup(forMediaCharacteristic:)
. 这意味着即使该组将包含所有相同的信息,它也不会是与前一次调用中的实例相同的实例。
推荐阅读
- mysql - 无法使用 JOIN 更新特定记录
- r - drv <- dbDriver("Oracle") 在命令行 R 中工作正常,但在 RStudio Server 上不工作
- java - 面向对象编程 - 两种方式组合实践?
- c++ - 创建数组并从中检索数据时 C++ 中的未定义行为
- javascript - 文件上传对话框第一次不显示onclick
- ruby-on-rails - 如果没有variant_id 的单选按钮标签,表单(购物车)将无法工作?
- javascript - 有人可以帮助我理解这个问题吗?
- ios - iOS/Swift:如何通过手动导入 Github(或其他)文件来解压缩文件?错误域 = SSZipArchiveErrorDomainUserInfo 无法打开 zip 文件
- html - z-index 值不能正确堆叠
- java - 如何以编程方式确定 JVM 中可用的资源限制?