【问题标题】:tvOS video: How to set duration of video on metadatatvOS 视频:如何在元数据上设置视频的持续时间
【发布时间】:2016-06-15 23:23:40
【问题描述】:

我将标题和描述设置为 tvOS 中 AVPlayer 视频的元数据。 如何在元数据中设置播放器时长?

【问题讨论】:

    标签: ios avplayer tvos


    【解决方案1】:

    信息覆盖应自动显示正确的持续时间。如果没有,你可以试试这个:

    let duration = player?.currentItem?.duration
    let titleItem = AVMutableMetadataItem()
    
    titleItem.key = AVMetadataCommonKeyTitle
    titleItem.keySpace = AVMetadataKeySpaceCommon
    titleItem.locale = NSLocale.currentLocale()
    titleItem.value = "My Video"
    titleItem.duration = duration
    

    【讨论】:

    • 假设我的视频时长是 32 分 55 秒。默认情况下,播放器显示持续时间的四舍五入值,即 33 分钟。现在我只想显示 32 分钟。我该怎么办?我尝试使用您提到的步骤,但没有奏效。如果有其他解决方案,请告诉我
    • 试试这个:let minutes = (lround(duration) / 60) % 60
    • 以下是我用来显示标题的代码 AVMutableMetadataItem *titleMetadataItem = [[AVMutableMetadataItem alloc] init]; titleMetadataItem.locale = [NSLocale currentLocale]; titleMetadataItem.key = AVMetadataCommonKeyTitle; titleMetadataItem.keySpace = AVMetadataKeySpaceCommon; titleMetadataItem.value = @"title"; titleMetadataItem.duration = self.player.currentItem.duration 现在我如何从持续时间中获取最小值,然后再次设置该值。我尝试设置硬编码值,但没有成功。
    • 您何时创建元数据?持续时间可能还没有。看看文档。您需要检查项目状态。只有当它是ReadyToPlay 你才有视频的持续时间。然后你可以做let duration = CMTimeGetSeconds(item.duration)
    • 我正在创建有关播放器项目状态的播放器元数据已准备好播放。即使这样,它也会选择持续时间的四舍五入值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    相关资源
    最近更新 更多