我试图将一个标题与一个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/

10-10 21:14