iOS Swift: ошибка значка видео

Я создаю эскизы видео с помощью следующего кода, и в большинстве случаев он работает. Однако иногда возникает ошибка, и эскиз не создается. Я не могу понять, почему иногда это не работает.

Вот как я создаю миниатюру видео:

let asset = AVAsset(URL: url)
let imageGenerator = AVAssetImageGenerator(asset: asset)
imageGenerator.appliesPreferredTrackTransform = true

do {
    let cgImage = try imgGenerator.copyCGImageAtTime(CMTimeMake(1, 30), actualTime: nil)
    let uiImage = UIImage(CGImage: cgImage)
    imageview.image = uiImage  
}
catch let error as NSError
{
    print("Image generation failed with error \(error)")
}

Он работает в большинстве случаев, когда он не работает, он выдает эту ошибку:

Error generating thumbnail: Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x17658520 {Error Domain=NSOSStatusErrorDomain Code=-12792 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-12792)}

Я понятия не имею, почему он вызывает эту ошибку, и не нашел решения по переполнению стека, хотя другие люди столкнулись с такой же проблемой.


person Sam    schedule 22.05.2016    source источник
comment
Для этого найдено какое-либо решение?   -  person DrPatience    schedule 09.12.2016
comment
Привет Кто-нибудь нашел решение для этого?   -  person G.Abhisek    schedule 20.06.2017
comment
Все еще сталкиваюсь с этой проблемой ... есть ли решение?   -  person Mujeeb    schedule 14.11.2017
comment
ты нашел на это ответ?   -  person PvDev    schedule 22.12.2018
comment
Кто-нибудь нашел решение?   -  person Muneeb Rehman    schedule 16.01.2021


Ответы (1)


Попробуй это.

func generateThumbnail(path: URL) -> UIImage? {
            do {
                let asset = AVURLAsset(url: path, options: nil)
                let imgGenerator = AVAssetImageGenerator(asset: asset)
                imgGenerator.appliesPreferredTrackTransform = true
                let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(0, 1), actualTime: nil)
                let thumbnail = UIImage(cgImage: cgImage)
                return thumbnail
            } catch let error {
                print("*** Error generating thumbnail: \(error.localizedDescription)")
                return nil
            }
        }
person Red Heart    schedule 02.04.2019
comment
Я использовал тот же код, но с той же ошибкой. Хотя видео правильное - person Muneeb Rehman; 16.01.2021