为什么我需要声明一个 AVAudioSession 实例?
Why to I need to declare an AVAudioSession instance?
@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)
为什么我需要声明上面的代码块?当我确实注释掉 运行 应用程序时,没有区别。
以上代码来自优达学城课程
音频是设备上的共享资源。让系统知道您打算使用音频做什么的原因是帮助它协调您的使用与正在发生的其他事情。例如,如果 phone 在录音过程中响起,或者如果用户选择了不同的 microphone,您的 App 会发生什么情况?这些和其他交互由全局 AVAudioSession 对象处理。
@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)
为什么我需要声明上面的代码块?当我确实注释掉 运行 应用程序时,没有区别。
以上代码来自优达学城课程
音频是设备上的共享资源。让系统知道您打算使用音频做什么的原因是帮助它协调您的使用与正在发生的其他事情。例如,如果 phone 在录音过程中响起,或者如果用户选择了不同的 microphone,您的 App 会发生什么情况?这些和其他交互由全局 AVAudioSession 对象处理。