AVAudioRecorder не работает
Невозможно получить код для AVAudioRecorder
работать с URL. Кто-нибудь смог заставить Record Audio работать на iOS и Swift 3? Жирный текст ниже, где я получаю следующую ошибку:
"Невозможно вызвать инициализатор для типа" AVAudioRecorder "со списком аргументов типа" (url: URL, settings..."
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}
func setupRecorder(){
let recordSettings = [AVFormatIDKey : kAudioFormatAppleLossless,
AVEncoderAudioQualityKey : AVAudioQuality.max.rawValue,
AVEncoderBitRateKey : 320000,
AVNumberOfChannelsKey : 2,
AVSampleRateKey : 44100.0 ] as [String : Any]
var error : NSError?
func getCacheDirectory() -> String {
let paths = NSSearchPathForDirectoriesInDomains(.cachesDirectory,.userDomainMask, true)
return paths [0]
}
func getFileURL() -> URL {
let path = (getCacheDirectory() as NSString).strings(byAppendingPaths: ["fileName"])
let filePath = URL(fileURLWithPath: "path")
return filePath
}
// Error on the following line
soundRecorder = try AVAudioRecorder(url: getFileURL() as URL, settings: recordSettings, error: &error)
if let err = error {
NSLog("There was an error")
}
else {
soundRecorder.delegate = self
soundRecorder.prepareToRecord()
}
1 ответ
Решение
В Swift вы не предоставляете error
параметр, так как это throws
,
Изменить это:
soundRecorder = try AVAudioRecorder(url: getFileURL() as URL, settings: recordSettings, error: &error)
чтобы:
soundRecorder = try AVAudioRecorder(url: getFileURL() as URL, settings: recordSettings)