swift - 如何在 swift3 中设置 AVMetadataItem 的标识符?

标签 swift swift3 tvos avmetadataitem

描述:

我正在尝试在 swift3 中设置 AVMetadataItemidentifier,如 this apple video 中所述.但是,该视频是 pre-swift3。

swift2 中它看起来像这样:

let metadataItem = AVMetadataItem(identifier: AVMetadataCommonIdentifierTitle, value: "Title here")

但是,在 swift3 中,该构造函数不再存在。

有一个空构造函数和这个:

AVMetadataItem(propertiesOf: AVMetadataItem, valueLoadingHandler: (AVMetadataItemValueRequest) -> Void)

似乎没有任何方法可以设置identifier

问题:

如何在swift3中设置AVMetadataItemidentifier

编辑:

按照 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)

它可以编译并运行,但在播放视频时不会建议导航标记(也称为章节)。我错过了什么?

最佳答案

使用 AVMutableMetadata 而不是 AVMetadata 这样您就可以根据需要修改 identifier

let titleItem =  AVMutableMetadataItem()
titleItem.identifier = AVMetadataCommonIdentifierTitle

关于swift - 如何在 swift3 中设置 AVMetadataItem 的标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39612162/

相关文章:

swift - 检查变量是否被计算或存储

ios - 在 Swift3 的 iOS 中将查询参数添加到 GET url

ios - 如何给 UIView 添加阴影?

ios - 界面构建器不允许添加表格 View 单元格

swift - 如何在不使用标签栏 Controller 的情况下在 Storyboard之间切换

ios - 在 Swift 中的 UITextView 上放置阴影

ios: libswiftCore.dylib swift 崩溃

ios - 我的本地人在构建tvOS时遇到问题,但iOS成功

swift - tvOS UIImageView 焦点阴影被剪切

SwiftUI - UI 元素的大小