У меня есть приложение для записи видео. Я могу начинать и останавливать запись, таким образом записывая различные сегменты, как в TikTok. Недавно я реализовал настройку videoZoomFactor
на AVCaptureDevice
. Во время записи работает нормально. Но если я увеличу масштаб перед записью и нажму на запись, чтобы начать, первый кадр выходного видео будет черным. Также, если во время того же AVCaptureSession
я записываю с увеличением, удаляю эту запись и снова записываю с увеличением, черные рамки не появляются. Из этого я делаю вывод, что вызов startRecording
на AVCaptureMovieFileOutput
исправляет что-то между первой записью и второй.
Может кто-нибудь посоветует мне решение? Я подумываю найти обходной путь, при котором я удалю первый кадр, если он был записан с начальным увеличением, но я хотел бы понять, почему это происходит, и найти правильное решение.
У меня довольно простая настройка для запись камеры. Я выполнял шаги в официальном руководстве из документации . Вот часть настройки коэффициента масштабирования.
self.sessionQueue.async {
do {
try device.lockForConfiguration()
device.videoZoomFactor = factor
device.unlockForConfiguration()
} catch {
print("\(error.localizedDescription)")
}
}