AVPlayerItem 外部元数据无法识别的选择器
AVPlayerItem externalMetadata unrecognized selector
这段代码在 iOS 12 上崩溃,出现无法识别的选择器异常:
[AVPlayerItem externalMetadata]: unrecognized selector sent to instance
但是,此代码在 iOS 13 上没有崩溃。
Apple documentation 声明 AVPlayerItem 自 iOS 12 以来具有 externalMetadata
getter 和 setter。
let item = AVPlayerItem(url: videoURL)
let mutableMetadataItem = AVMutableMetadataItem()
mutableMetadataItem.identifier = AVMetadataIdentifier.commonIdentifierDescription
mutableMetadataItem.value = 1
item.externalMetadata.append(mutableMetadataItem)
你能帮我理解为什么会这样吗?
externalMetadata
是在 iOS 13 中引入的。这一事实在相关的 WWDC 2019 视频中明确指出。简而言之,文档(或可用性标签)是错误的——错误的结果是允许您在实际不存在的上下文 (iOS 12) 中使用 externalMetadata
,并且所以你崩溃了。
这段代码在 iOS 12 上崩溃,出现无法识别的选择器异常:
[AVPlayerItem externalMetadata]: unrecognized selector sent to instance
但是,此代码在 iOS 13 上没有崩溃。
Apple documentation 声明 AVPlayerItem 自 iOS 12 以来具有 externalMetadata
getter 和 setter。
let item = AVPlayerItem(url: videoURL)
let mutableMetadataItem = AVMutableMetadataItem()
mutableMetadataItem.identifier = AVMetadataIdentifier.commonIdentifierDescription
mutableMetadataItem.value = 1
item.externalMetadata.append(mutableMetadataItem)
你能帮我理解为什么会这样吗?
externalMetadata
是在 iOS 13 中引入的。这一事实在相关的 WWDC 2019 视频中明确指出。简而言之,文档(或可用性标签)是错误的——错误的结果是允许您在实际不存在的上下文 (iOS 12) 中使用 externalMetadata
,并且所以你崩溃了。