@IBAction func recordAudio(sender: UIButton) {
recodingLabel.hidden = false
stopButton.hidden = false
let dirPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let currentDateTime = NSDate()
let formatter = NSDateFormatter()
formatter.dateFormat = "ddMMyyyy-HHmmss"
let recordingName = formatter.stringFromDate(currentDateTime)+".wav"
let pathArray = [dirPath,recordingName]
let filePath = NSURL.fileURLWithPathComponents(pathArray)
//println(filePath)
var recordSession = AVAudioSession.sharedInstance()
recordSession.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
audioRecorder = AVAudioRecorder(URL: filePath, settings: nil, error: nil)
audioRecorder.delegate = self
audioRecorder.meteringEnabled = true
audioRecorder.record()
}
从上面的代码可以看出,我试图通过按下按钮来记录用户的音频,并且在下一个视图中我希望播放相同的背景。
我遇到的问题是以下代码块:
var recordSession = AVAudioSession.sharedInstance()
recordSession.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
为什么我需要声明上面的代码块?当我做出评论并运行应用程序时,没有任何区别。
以上代码来自Udacity课程
答案 0 :(得分:2)
音频是设备上的共享资源。让系统了解您计划使用Audio做什么的原因是为了帮助它协调您的使用与其他正在发生的事情。例如,如果手机在录制过程中响铃,或者用户选择其他麦克风,您的应用会发生什么?这些和其他交互由全局AVAudioSession对象处理。