将元数据添加到 Swift 中的 AVPlayerItem 3

Adding metadata to an AVPlayerItem in Swift 3

我正在尝试将标题与 AVPlayerItem 相关联,但似乎无法正常工作。根据 Apple 的文档,我应该可以使用 AVPlayerItem.externalMetadata.append(value) 来完成此操作,但我似乎无法让它工作。 编译器 returns 消息 "Value of type 'AVPlayerItem' has no member '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 is a tvOS only property. In the right-hand column of the API Reference,在SDK部分下,只有"tvOS 9.0+"。 iOS.

根本无法使用它

更新: 属性 现在也支持 iOS 12.0+。你现在应该可以使用了。