我試圖使用SWIFT 2下面的代碼,這應該是在迅速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)
}
我得到了編譯錯誤
型精 'AudioFormatID' 不符合協議「AnyObject '
在線AVFormatIDKey: kAudioFormatMPEG4AAC,
。
如果我註釋掉行,我通過構建,卻得到了一個運行時錯誤
錯誤域= NSOSStatusErrorDomain代碼= 1718449215「的操作無法完成。(OSStatus錯誤1718449215.)」
我也試過AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC),
,並得到運行時錯誤。 Xcode中似乎進入調試模式,它紅色高亮顯示self.audioRecorder = try AVAudioRecorder(URL: audioURL!, settings: recordSettings)
說
主題1:EXC_BAD_ACCESS(代碼= 1,地址=爲0x0)
任何人都可以幫我嗎?
嗯...我打印出'audioURL',它顯示'MyAudio.m4a',所以我認爲它不是零。 –
我測試了你的代碼,它在設備上運行良好。您可能剛剛在模擬器上遇到問題,因爲您無法在該處記錄。 – matt
不幸的是,它不適用於我的iPhone或模擬器。無論如何感謝您的測試! –