gpt4 book ai didi

ios - 重新编译应用程序后生成预览图像时,视频从 URL 中消失

转载 作者:行者123 更新时间:2023-11-30 14:02:10 25 4
gpt4 key购买 nike

我正在创建一个视频应用程序,用户可以在其中录制视频并添加一些附加信息。然后,用户可以在单独的屏幕上观看视频及其信息。

在信息屏幕上,我尝试显示视频中的静态图像。如果我在该 session 中打开信息屏幕,则此方法有效,但当我重新编译并运行应用程序时,屏幕截图不再出现。我收到以下错误:

NSUnderlyingError=0x162b9350“操作无法完成。没有这样的文件或目录”,NSLocalizedDescription=在此服务器上找不到请求的 URL。

视频位于设备上的某个位置,我可以通过内置的“照片”应用程序查看它。

我使用以下代码来执行 URL 字符串的保存并生成预览图像。

保存视频网址

    let videoURL = info[UIImagePickerControllerMediaURL] as! NSURL
let videoData = NSData(contentsOfURL: videoURL)
let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
let dataPath = path.stringByAppendingPathComponent("-cached.MOV")
videoData.writeToFile(dataPath, atomically: false)
NSUserDefaults.standardUserDefaults().setObject(dataPath, forKey: "dataPath")

videoNote.url = dataPath

创建预览图像

// filePathLocal == videoNote.url
func videoSnapshot(filePathLocal: NSString) -> UIImage? {

let vidURL = NSURL(fileURLWithPath:filePathLocal as String)
let asset = AVURLAsset(URL: vidURL, options: nil)
let generator = AVAssetImageGenerator(asset: asset)
generator.appliesPreferredTrackTransform = true

let timestamp: CMTime = asset.duration

var error: NSError?

if let imageRef = generator.copyCGImageAtTime(timestamp, actualTime: nil, error: &error){
return UIImage(CGImage: imageRef)
} else {
print("Image generation failed with error \(error)")
return nil
}
}

非常感谢任何帮助

最佳答案

虽然我从未设法让 videoSnapshot() 方法中的代码正常工作,但我发现我可以使用以下代码来生成预览镜头。缺点是无法控制图像的时间戳。

    ALAssetsLibrary().assetForURL(nsURL, resultBlock: { (asset) -> Void in
if let ast = asset {
return image = UIImage(CGImage: ast.defaultRepresentation().fullResolutionImage().takeUnretainedValue())
}
})

关于ios - 重新编译应用程序后生成预览图像时,视频从 URL 中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32865366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com