出于编辑目的,我想使用 iOS 设备上存储的视频的尺寸。当我使用尺寸为 768x768 的视频时(我以这种方式录制并验证了 iOS 媒体库中的尺寸),我得到的是 480x480。
这是我使用的代码:
func getVideoResolution(url: URL) async throws -> CGSize? {
guard let track = try await AVURLAsset(url: url).loadTracks(withMediaType: AVMediaType.video).first else { return nil }
let size = try await track.load(.naturalSize).applying(track.load(.preferredTransform))
return size
}
我还尝试了一种不同的方法:
func checkVideoDim(videoURL: URL) -> CGSize {
let videoAsset = AVAsset.init(url: videoURL)
let generator = AVAssetImageGenerator.init(asset: videoAsset)
let imageRef: CGImage!
do {
try imageRef = generator.copyCGImage(at: CMTime.zero, actualTime: nil)
let thumbn = UIImage.init(cgImage: imageRef)
return thumbn.size
} catch let error as NSError {
print("Failed to check video")
print(error.localizedDescription)
}
return CGSize(width: 0, height: 0)
}
这两个函数都给我 480x480,而它们应该给我 768x768。我的应用程序的用户使用完全不同的视频文件告诉我这个问题,所以我认为这不是特定于文件的。 我错过了什么?
我也有同样的问题。