我需要知道我通过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
为空,因此我无法检查自然尺寸。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
在整天玩完之后,我找到了解决方案:
显然,流式传输.m3u8 HLS文件将始终生成一个空的asset.tracks
数组。
获取维度的方法是通过AVPlayerItem.presentationSize
属性。