sto cercando il seguente codice utilizzando swift 2, che dovrebbe andare bene in rapida 1.swift2 AVAudioRecorder
class NewSoundViewController: UIViewController {
required init(coder aDecoder: NSCoder) {
let audioURL = NSURL.fileURLWithPathComponents([
NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0],
"MyAudio.m4a"
])
do {
let session = AVAudioSession.sharedInstance()
try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
} catch {
print("Session errors.")
}
do {
let recordSettings: [String: AnyObject] = [
AVFormatIDKey: kAudioFormatMPEG4AAC,
AVSampleRateKey: 44100.0,
AVNumberOfChannelsKey: 2,
]
self.audioRecorder = try AVAudioRecorder(URL: audioURL!, settings: recordSettings)
self.audioRecorder.meteringEnabled = true
self.audioRecorder.prepareToRecord()
} catch let error as NSError{
print(error.description)
} catch {
print("Other errors")
}
super.init(coder: aDecoder)
}
mi sono compilazione errore
Tipo 'AudioFormatID' non è conforme al protocollo 'ANYOBJECT '
alla riga AVFormatIDKey: kAudioFormatMPEG4AAC,
.
Se commento fuori la linea, ho superato costruire, ma ha un errore di runtime
errore di dominio = Codice NSOSStatusErrorDomain = 1.718.449,215 mila "L'operazione non può essere completata. (Errore OSStatus 1718449215.)"
Ho anche provato AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC),
e ottenuto errore di runtime. Xcode sembrava andare alla modalità di debug di rosso evidenziato self.audioRecorder = try AVAudioRecorder(URL: audioURL!, settings: recordSettings)
e disse
filettatura 1: EXC_BAD_ACCESS (codice = 1, indirizzo = 0x0)
Qualcuno può aiutarmi?
Hmmm ... Ho stampato 'audioURL' e ha mostrato' MyAudio.m4a' quindi presumo che non sia nullo. –
Ho testato il codice e funziona correttamente sul dispositivo. Probabilmente stai riscontrando un problema su Simulator perché non puoi registrare lì. – matt
Sfortunatamente, non funziona né per il mio iPhone né per il simulatore. Grazie per il test comunque !. –