pig*_*_39 6 size video ios swift
我正在制作一个视频编辑应用程序,其中每个视频都以这样的方式进行平方,即视频的任何部分都不会被裁剪.为此,在纵向视频的情况下,它包含左右两侧的黑色部分以及用于横向视频,它包含视频顶部和底部的黑色部分.黑色部分是视频的一部分,它们不适合AVPlayerViewController.这是样本,
我需要用一些来覆盖这些黑色部分CALayers.
什么是框架(CGRect)
CALayer?
我正在获取naturalSize包含黑色部分的属性的视频维度.
有没有办法获得没有黑色部分的视频尺寸?(我的意思是实际视频内容的维度)或者有没有办法获得
CGRect视频的黑色区域?
Vla*_*hev 20
试试这个:
var mediaAspectRatio: Double! // <- here will be set aspect ratio for video with url
func initAspectRatioOfVideo(with fileURL: URL) {
let resolution = resolutionForLocalVideo(url: fileURL)
guard let width = resolution?.width, let height = resolution?.height else {
return
}
mediaAspectRatio = Double(height / width)
}
private func resolutionForLocalVideo(url: URL) -> CGSize? {
guard let track = AVURLAsset(url: url).tracks(withMediaType: AVMediaTypeVideo).first else { return nil }
let size = track.naturalSize.applying(track.preferredTransform)
return CGSize(width: fabs(size.width), height: fabs(size.height))
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
这是Vlad Pulichev 答案的更简洁版本。
var aspectRatio: CGFloat! // use the function to assign your variable
func getVideoResolution(url: String) -> CGFloat? {
guard let track = AVURLAsset(url: URL(string: url)!).tracks(withMediaType: AVMediaType.video).first else { return nil }
let size = track.naturalSize.applying(track.preferredTransform)
return abs(size.height) / abs(size.width)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5253 次 |
| 最近记录: |