Как сделать снимок экрана с AVPlayer в iOS SwiftIOS

Программируем под IOS
Ответить
Anonymous
 Как сделать снимок экрана с AVPlayer в iOS Swift

Сообщение Anonymous »


func getVideoScreenShot(url:URL? = nil,viewToCapture:UIView) -> UIImage?{ если пусть URL = URL { пусть актив = AVAsset (url: URL) пусть imageGenerator = AVAssetImageGenerator (актив: актив) imageGenerator.requestedTimeToleranceAfter = CMTime.zero imageGenerator.requestedTimeToleranceBefore = CMTime.zero imageGenerator.appliesPreferredTrackTransform = true если let player = getCurrentPlayer(view: viewToCapture) { если отпустить большой палец: CGImage = попробовать? imageGenerator.copyCGImage(at: player.currentTime(), factTime: ноль) { //print("изображение видео успешно выполнено") пусть кадр = UIImage (cgImage: большой палец) UIGraphicsBeginImageContextWithOptions (canvasSize!, false, UIScreen.main.scale) Frame.draw(in: CGRect(x: 0, y: 0, ширина: CanvasSize!.width, высота: CanvasSize!.height)) пусть newImage = UIGraphicsGetImageFromCurrentImageContext() вернуть новое изображение } }еще{ } } вернуть ноль } Мне нужно уместить любое видео в заданном соотношении 9:16. Я пытаюсь получить снимок экрана с представлением, содержащим AVPlayer View. Я получаю снимок экрана идеально для портретного видео, но столкнулся с проблемой сжатия изображения в альбомном видео. Было бы здорово, если бы кто-нибудь помог это выяснить.

Вывод при портретном видео:

Портрет_видео_скриншот

Выход при альбомном видео:

Пейзажный_видео_скриншот
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»