Ich versuche, die Rahmen alle von einem Video zu bekommen aber es funktioniert nicht immer beiAVFoundation: copyCGImageAtTime immer wieder zurückkehren Null
cgImage = try assetImgGenerate.copyCGImageAtTime(time, actualTime: nil)
Meine aktuellen Code in wie folgt aussieht
if let path = NSBundle.mainBundle().resourcePath {
let fullPath = path + "/mov/watch_phone.mov"
let url = NSURL(fileURLWithPath: fullPath)
mutableVideoURL = url
getFrame()
print(videoFrames.count)
}
func getFrame() {
let asset:AVAsset = AVAsset(URL:self.mutableVideoURL as NSURL)
let assetImgGenerate:AVAssetImageGenerator = AVAssetImageGenerator(asset:asset)
assetImgGenerate.appliesPreferredTrackTransform = true
let duration:Float64 = CMTimeGetSeconds(asset.duration)
let durationInt:Int = Int(duration)
for index:Int in 0 ..< durationInt
{
generateFrames(assetImgGenerate, fromTime: Float64(index))
}
}
func generateFrames(assetImgGenerate:AVAssetImageGenerator, fromTime:Float64)
{
let time:CMTime = CMTimeMakeWithSeconds(fromTime, 600)
let cgImage:CGImage?
do
{
cgImage = try assetImgGenerate.copyCGImageAtTime(time, actualTime: nil)
let frameImg:UIImage = UIImage(CGImage:cgImage!)
videoFrames.append(frameImg)
}
catch let error as NSError {
print("Found error in saving entity changes \(error)")
}
copyCGImageAtTime
immer nil . Das Video wird zu meinem Bundle hinzugefügt und ist auch in den Bundle-Ressourcen in Build-Phasen enthalten.
Dies ist der Fehler im Block
Fang erhieltError Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x1700563e0 {Error Domain=NSOSStatusErrorDomain Code=-12430 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-12430), NSLocalizedDescription=The operation could not be completed}
Bitte helfen Sie mir zu verstehen, was ich hier falsch