我正在尝试在identifier
中设置AVMetadataItem
swift3
,如this apple video中所述。但是,该视频是pre-swift3。
在swift2
中,它看起来像这样:
let metadataItem = AVMetadataItem(identifier: AVMetadataCommonIdentifierTitle, value: "Title here")
但是,在swift3
中,构造函数不再存在。
有一个空的构造函数和这个:
AVMetadataItem(propertiesOf: AVMetadataItem, valueLoadingHandler: (AVMetadataItemValueRequest) -> Void)
似乎没有任何方法可以设置identifier
。
如何在identifier
中设置AVMetadataItem
的{{1}}?
按照卢卡斯的建议尝试使用AVMutableMetadataItem()。
swift3
在这里使用:
private func setupNavigationMarker(title: String, description: String, timeRange: CMTimeRange)-> AVTimedMetadataGroup {
var items: [AVMetadataItem] = []
let titleItem = AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitle
titleItem.value = title as (NSCopying & NSObjectProtocol)?
items.append(titleItem)
let descriptionItem = AVMutableMetadataItem()
descriptionItem.identifier = AVMetadataCommonIdentifierDescription
descriptionItem.value = description as (NSCopying & NSObjectProtocol)?
items.append(descriptionItem)
return AVTimedMetadataGroup(items: items, timeRange: timeRange)
}
它编译并运行但在播放视频时不会提出导航标记(也称为章节)。我错过了什么?
答案 0 :(得分:3)
使用AVMutableMetadata
代替AVMetadata
这样您就可以根据需要修改identifier
。
let titleItem = AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitle