Методы Swift AVFoundation устарели.IOS

Программируем под IOS
Ответить
Anonymous
 Методы Swift AVFoundation устарели.

Сообщение Anonymous »

Ниже у меня есть код для объединения видеоклипов в одно видео. У меня нет большого опыта работы с AVFoundation, поэтому я не уверен, как заменить устаревший код обновленными методами, не вызывая ошибки:

Тип «CameraViewModel» не соответствует протоколу «AVCaptureFileOutputRecordingDelegate».

Этот код отлично работает для iOS 15, но в iOS 16 он устарел. В первом фрагменте кода ниже находится исходный устаревший код (устаревший код, в частности, в функции mergeVideos). Во втором фрагменте кода я пытаюсь обновить устаревший код правильным, но при этом получаю ошибку, указанную выше.
В своем коде я изменил устаревший asset.duration на асинхронный asset.load(.duration)
Я также изменил asset.tracks(withMediaType: .audio)[0] в асинхронный asset.loadTracks(withMediaType: .audio)
import SwiftUI
import SwiftUI
import AVFoundation

class CameraViewModel: NSObject, ObservableObject, AVCaptureFileOutputRecordingDelegate{
@Published var session = AVCaptureSession()
@Published var alert = false
@Published var output = AVCaptureMovieFileOutput()
@Published var preview : AVCaptureVideoPreviewLayer!
@Published var isRecording: Bool = false
@Published var recordedURLs: = [] @Published var previewURL: URL? @ ... deprecated
Ответить

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

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

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

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

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