0

我需要知道我通过 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是空的,所以我无法检查自然大小。

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

4

1 回答 1

0

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

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

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

于 2018-02-02T02:34:44.440 回答