我试图将标题与 AVPlayerItem 相关联,但似乎无法正常工作。根据 Apple 的文档,我应该可以使用 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/