描述:
我正在尝试设置identifier of AVMetadataItem in swift3,就像这个苹果视频中提到的那样。然而,这段视频是预快的。
在swift2中,它看起来如下所示:
let metadataItem = AVMetadataItem(identifier: AVMetadataCommonIdentifierTitle, value: "Title here")但是,在swift3中,构造函数已经不存在了。
有一个空的构造函数,这个构造函数是:
AVMetadataItem(propertiesOf: AVMetadataItem, valueLoadingHandler: (AVMetadataItemValueRequest) -> Void)似乎没有任何方法可以设置identifier。
问题:
如何设置identifier of AVMetadataItem in swift3
编辑:
按照Lucas的建议,用AVMutableMetadataItem()进行了尝试。
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)
}在这里使用:
let cmTimeStart = CMTimeMake(0, 0)
let cmTimeDuration = CMTimeMake(10, 1)
let timeRange = CMTimeRange(start: cmTimeStart, duration: cmTimeDuration)
let timedMetadataGroup = self.setupNavigationMarker(title: "test", description: "description test" , timeRange: timeRange)
let timedMetadataGroupList = [timedMetadataGroup]
let navigationMarkersGroup = AVNavigationMarkersGroup(title: "Chapters", timedNavigationMarkers: timedMetadataGroupList)
//predefined avPlayerItem
avPlayerItem.navigationMarkerGroups.append(navigationMarkersGroup)它编译和运行,但没有导航标记(也就是章节)时,视频播放。我遗漏了什么?
发布于 2016-09-21 09:20:51
以这种方式使用AVMutableMetadata而不是AVMetadata,您可以根据自己的选择修改identifier。
let titleItem = AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitlehttps://stackoverflow.com/questions/39612162
复制相似问题