2017-01-09 11 views
0

AVPlayerControllerドロップダウンでInfoを表示しようとしています。私は、WWDCに表示されているとおり、playerItemにメタデータを追加しています。アートワークのイメージを除き、すべてが正常に表示されています。奇妙なのは、画像をインフォメーションビューに追加したように見えますが、それを隠すように見えることです。イメージがなければならないスペースがありますが、何も表示されません。それは、しかし、私はそれを正しく追加している知っているので、テレビのリモートアプリケーションに表示されます。ここに私のコードだ:metadataItemを作成するために使用さAVPlayerメタデータのアートワークがtvOSに表示されない

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

+0

この行の直前にprintステートメントを追加してください: 'allItems.append(artworkItem)'とそれがトリガされているかどうかを確認してください。 – Coder256

+0

@ Coder256トリガーされています。 – CodyMace

+0

PNGの代わりに[JPEG]を試しましたか(http://stackoverflow.com/a/25664369/3398839)? 'value'と' dataType'の両方をJPEGを使うように変更し、それが修正するかどうか確認してください。 – Coder256

答えて

0

だから、AVMetadataCommonIdentifierDescriptionアイテムがnilまたは空の文字列である場合、画像が得ることが判明します隠された私がそれを修正するためにしなければならなかったのは、表示するテキストがない場合、 ""に説明を設定しただけでした。私はそれが明らかに正常ではないので、これにリンゴのバグを提出するつもりです。

関連する問題