diff --git a/Classes/Swift/Chat/ViewModels/ChatConversationViewModel.swift b/Classes/Swift/Chat/ViewModels/ChatConversationViewModel.swift index 75ccf781e..5a82d7824 100644 --- a/Classes/Swift/Chat/ViewModels/ChatConversationViewModel.swift +++ b/Classes/Swift/Chat/ViewModels/ChatConversationViewModel.swift @@ -473,16 +473,20 @@ class ChatConversationViewModel: ControlsViewModel { } return UIImage(named: "chat_error")! } - + func createThumbnailOfVideoFromFileURL(videoURL: String) -> UIImage? { - let asset = AVAsset(url: URL(string: videoURL)!) - let assetImgGenerate = AVAssetImageGenerator(asset: asset) - assetImgGenerate.appliesPreferredTrackTransform = true - do { - let img = try assetImgGenerate.copyCGImage(at: CMTimeMake(value: 1, timescale: 10), actualTime: nil) - let thumbnail = UIImage(cgImage: img) - return thumbnail - } catch _{ + if let urlVideo = URL(string: videoURL){ + let asset = AVAsset(url: urlVideo) + let assetImgGenerate = AVAssetImageGenerator(asset: asset) + assetImgGenerate.appliesPreferredTrackTransform = true + do { + let img = try assetImgGenerate.copyCGImage(at: CMTimeMake(value: 1, timescale: 10), actualTime: nil) + let thumbnail = UIImage(cgImage: img) + return thumbnail + } catch _{ + return nil + } + } else { return nil } } diff --git a/Classes/Swift/Chat/Views/MultilineMessageCell.swift b/Classes/Swift/Chat/Views/MultilineMessageCell.swift index 6c058c066..8871492be 100644 --- a/Classes/Swift/Chat/Views/MultilineMessageCell.swift +++ b/Classes/Swift/Chat/Views/MultilineMessageCell.swift @@ -1243,14 +1243,22 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource, } func createThumbnailOfVideoFromFileURL(videoURL: String) -> UIImage? { - let asset = AVAsset(url: URL(string: "file://" + videoURL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)!) - let assetImgGenerate = AVAssetImageGenerator(asset: asset) - assetImgGenerate.appliesPreferredTrackTransform = true - do { - let img = try assetImgGenerate.copyCGImage(at: CMTimeMake(value: 1, timescale: 10), actualTime: nil) - let thumbnail = UIImage(cgImage: img) - return thumbnail - } catch _{ + if let urlEncoded = videoURL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed){ + if let urlVideo = URL(string: "file://" + urlEncoded){ + let asset = AVAsset(url: urlVideo) + let assetImgGenerate = AVAssetImageGenerator(asset: asset) + assetImgGenerate.appliesPreferredTrackTransform = true + do { + let img = try assetImgGenerate.copyCGImage(at: CMTimeMake(value: 1, timescale: 10), actualTime: nil) + let thumbnail = UIImage(cgImage: img) + return thumbnail + } catch _{ + return nil + } + } else { + return nil + } + } else { return nil } }