ios - AVPlayer 元数据图稿不显示在 tvOS 上

标签 ios swift avplayer tvos apple-tv

我正在尝试在 AVPlayerController 下拉列表中显示信息。我完全按照他们在 WWDC 中显示的内容,将元数据添加到playerItem。除了艺术品图像之外,一切都显示正常。奇怪的是,它似乎将图像添加到信息 View 中,但随后隐藏了它。有一个应该有图像的空间,但什么也没有显示。不过它确实显示在电视远程应用程序上,所以我知道我添加它是正确的。这是我的代码:

let playerItem: AVPlayerItem = AVPlayerItem(asset: avasset)
var allItems: [AVMetadataItem] = []
allItems.append(self.metadataItem(identifier: AVMetadataCommonIdentifierTitle, value: asset.title as (NSCopying & NSObjectProtocol)?)!)
if let desc = asset.desc {
    allItems.append(self.metadataItem(identifier: AVMetadataCommonIdentifierDescription, value: desc as (NSCopying & NSObjectProtocol)?)!)
}
if let image = self.thumbImage, let artworkItem = self.metadataArtworkItem(image: image) {
    allItems.append(artworkItem)
}
playerItem.externalMetadata = allItems
self.setupPlayerItem(playerItem)

用于创建元数据项的方法:

func metadataItem(identifier: String, value: (NSCopying & NSObjectProtocol)?) -> AVMetadataItem? {
    if let actualValue = value {
        let item = AVMutableMetadataItem()
        item.value = actualValue
        item.identifier = identifier
        item.extendedLanguageTag = "und"
        return item.copy() as? AVMetadataItem
    }
    return nil
}

func metadataArtworkItem(image: UIImage) -> AVMetadataItem? {
    let item = AVMutableMetadataItem()
    item.value = UIImagePNGRepresentation(image) as (NSCopying & NSObjectProtocol)?
    item.dataType = kCMMetadataBaseDataType_PNG as String
    item.identifier = AVMetadataCommonIdentifierArtwork
    item.extendedLanguageTag = "und"
    return item.copy() as? AVMetadataItem
}

enter image description here

最佳答案

事实证明,如果 AVMetadataCommonIdentifierDescription 项为零或空字符串,则图像将被隐藏。如果没有文本可显示,我所要做的就是将描述设置为“”来修复它。我将就此向苹果提交错误,因为这显然是不正常的。

关于ios - AVPlayer 元数据图稿不显示在 tvOS 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557731/

相关文章:

ios - 如何使用特定的.swiftlint.yml? swiftlint 命中它在根路径上。

ios - 如何从 CoreDate 加载我的数据以在 tableView 中显示它?

ios - 节与其标题之间的 UITableView 空间

ios - 如何使用 AVAssetExportSession 导出 AVPlayer 音频 mp3 文件?

ios - avplayer seek 在音频文件中播放错误的位置

ios - AFNetworking:接收“数字”而不是GET请求文本

arrays - Swift Cast as Generic 与 UInt 崩溃

ios - 字符 0 周围的 Alamofire 无效值

ios - 完成 block 问题

ios - 自定义AVPlayerViewController