AVFoundation:如何获取AVURLAsset流式传输视频的视频尺寸?

时间:2018-02-01 00:38:42

标签: ios swift avfoundation dimensions avurlasset

我需要知道我通过AVURLAsset从网上播放的视频是纵向还是横向。

在过去,我通过获取视频轨道的自然大小,应用其首选变换,然后比较宽度和高度,使用本地视频完成此操作。例如:

if let assetTrack = asset.tracks(withMediaType: AVMediaType.video).first {
    let temp = assetTrack.naturalSize.applying(assetTrack.preferredTransform)
    let size = CGSize(width:fabs(temp.width), height: fabs(temp.height))
    return size.height > size.width
}

但对于此流式视频,asset.tracks为空,因此我无法检查自然尺寸。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在整天玩完之后,我找到了解决方案:

显然,流式传输.m3u8 HLS文件将始终生成一个空的asset.tracks数组。

获取维度的方法是通过AVPlayerItem.presentationSize属性。