与 PHAsset 相比,AVAsset 的大小错误,有人知道这个问题吗?

问题描述

从状态已完成的 AVAssetWriter 获取 outputUrl 后,我通过如下方式保存 PHAsset。

let changeBlock = {
            let creationRequest = PHAssetCreationRequest.forAsset()
            creationRequest.addResource(with: .video,fileURL: url,options: nil)
            localIdentifier = creationRequest.placeholderForCreatedAsset?.localIdentifier
        }
let completionHandler = { ... }
PHPhotoLibrary.shared().performChanges(changeBlock,completionHandler: completionHandler)

以上代码的结果PHAsset的像素宽高分别为1920和1080(这个尺寸适合横向) 除此之外,我还检查了照片库中视频的大小,也与上面的大小相同。

完成保存 PHAsset,我通过下面的代码从 PHAsset 上面获取 AVAsset。

let resultHandler = { ... }
PHImageManager.default().requestAVAsset(
                    forVideo: photoKitAsset,options: nil,resultHandler: resultHandler
                )

然后我检查了上面 AVAsset 的自然大小,该大小是 1080 x 1920。(我认为这个大小是 90 度旋转大小,我从 AVAsset 中看到了像素缓冲区,像素缓冲区也旋转了 90 度。

但是,当我在 iPhone 系统相机中拍摄视频并使用这个 PHAsset 时,我也发现 AVAsset 的 naturalSize 是正确的。

从 PHAsset 中释放 AVAsset 时是否需要设置方向? 请帮帮我谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)