我试图将一个标题与一个AVPlayerItem相关联,但似乎无法使其生效。根据苹果的文档,我应该可以使用AVPlayerItem.externalMetadata.append(value)来完成这项工作,但我似乎无法让它工作。编译器返回消息“AVPlayerItem类型的值没有成员“externalMetadata”。“由于我做了大量搜索,没有发现任何有类似问题的人,因此我认为我一定遗漏了一些明显的问题。这是我试图使用的函数:
func enqueue(avAsset: AVURLAsset, title:String) {
let item = AVPlayerItem(asset: avAsset)
let titleMetadata = AVMutableMetadataItem()
titleMetadata.identifier = AVMetadataCommonKeyTitle
titleMetadata.value = title as (NSCopying & NSObjectProtocol)?
item.externalMetadata.append(titleMetadata)
self.player.insert(item, after: nil)
if player.rate == 0 {
self.startPlaying()
}
}
任何帮助都将不胜感激。
最佳答案
externalMetadata是tvOS独有的属性。在API Reference的右栏中,SDK部分下只有“tvOS 9.0+”。iOS根本无法使用它。
更新:该属性现在还支持iOS 12.0+。你现在应该可以用了。
关于ios - 在Swift 3中将元数据添加到AVPlayerItem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42358748/