Привет, я знаю, что об этом спрашивали несколько раз, но мне нужна помощь с загрузкой голосовых записей пользователей в Firebase. Когда пользователь записывает свой звук в приложении и нажимает кнопку остановки, я хочу, чтобы запись была загружена и сохранена в Firebase, а не на телефоне пользователя.
Вот функция для записи
func startRecording() {
let recordingSession = AVAudioSession.sharedInstance()
do {
try recordingSession.setCategory(.playAndRecord, mode: .default)
try recordingSession.setActive(true)
} catch {
print("Failed to set up recording session")
}
let documentPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let audioFilename = documentPath.appendingPathComponent("\(Date().toString(dateFormat: "dd-MM-YY_'at'_HH:mm:ss")).m4a")
let settings = [
AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
AVSampleRateKey: 12000,
AVNumberOfChannelsKey: 1,
AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
]
do {
audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
audioRecorder.record()
recording = true
} catch {
print("Could not start recording")
}
}
Вот функция, когда пользователь прекращает запись
func saveRecording() {
let path = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let directoryContents = try! FileManager.default.contentsOfDirectory(at: path, includingPropertiesForKeys: nil)
for i in directoryContents {
user.answersSent.append(CardModel(fullname: question.fullname, username: question.username, imageURL: question.imageURL, question: question.question, fileURL: i, createdAt: getCreationDate(for: i), colorChoice: question.colorChoice))
}
user.answersSent.sort(by: { $0.createdAt?.compare($1.createdAt!) == .orderedDescending})
}
}
Большое спасибо за то, что уделили время чтению. Я потратил почти два дня, пытаясь понять это.