【问题标题】:tvOS - Override start time / end time slider AVPlayerViewControllertvOS - 覆盖开始时间/结束时间滑块 AVPlayerViewController
【发布时间】:2022-01-06 06:34:49
【问题描述】:

我使用 AVPlayerViewController 来播放 HLS 文件,但是开始时间始终是 00:00,结束时间是 HLS 清单中事件的持续时间。

相反,我希望显示事件的开始时间和事件的结束时间。

我发现可以使用:AVKitMetadataIdentifierExactStartDate/AVKitMetadataIdentifierExactEndDate

但看起来当我创建一个AVMutableMetadataItem 并尝试将AVKitMetadataIdentifierExactStartDate 分配为标识符时,它不存在。所以我有点卡住了。

有人知道吗?

【问题讨论】:

    标签: avplayer tvos avplayerviewcontroller


    【解决方案1】:

    经过几天的研究,我发现这可以通过创建AVMutableMetadataItem 来实现,将它们分配为identifierAVMetadataIdentifier(AVKitMetadataIdentifierExactStartDate) 然后作为值,您只需将开始时间添加为日期并将所有内容都转换为@987654324 @。

    一旦您设置了这两个属性,您就可以将您刚刚创建为 metadataItems 数组的新 metadataItems 附加到 player.currentItem.externalMetadatas

    下面的完整示例:

    //Add start date
            let item = AVMutableMetadataItem()
            item.identifier = AVMetadataIdentifier(AVKitMetadataIdentifierExactStartDate)
            item.value = startDate as? NSCopying & NSObjectProtocol
            let metadataItem = item.copy() as! AVMetadataItem
            
            //Add start date
            let endTimeItem = AVMutableMetadataItem()
            endTimeItem.identifier = AVMetadataIdentifier(AVKitMetadataIdentifierExactEndDate)
            endTimeItem.value = endDate as? NSCopying & NSObjectProtocol
            let endTimeMetadataItem = endTimeItem.copy() as! AVMetadataItem
            
            var metadataItems = [AVMetdataItem]()
            metadataItems.append(metadataItem)
            metadataItems.append(endTimeMetadataItem)
            self.player.currentItem?.externalMetadata = metadataItems
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-23
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      相关资源
      最近更新 更多