【发布时间】:2015-02-25 00:58:38
【问题描述】:
我正在创建的录音机应用程序中有两个函数(遵循 Udacity 教程)。我试图了解这两个函数之间的关系:
@IBAction func recordButton(sender: UIButton) {
recordB.hidden = true
inProgress.hidden = false
stopButtonHide.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 session = AVAudioSession.sharedInstance()
session.setCategory(AVAudioSessionCategoryPlayAndRecord, error: nil)
audioRecorder = AVAudioRecorder(URL: filePath, settings: nil, error: nil)
audioRecorder.delegate = self
audioRecorder.meteringEnabled = true
audioRecorder.prepareToRecord()
audioRecorder.record()
}
func audioRecorderDidFinishRecording(recorder: AVAudioRecorder!, successfully flag: Bool) {
if(flag) {
recordedAudio = RecordedAudio()
recordedAudio.filePathUrl = recorder.url
recordedAudio.title = recorder.url.lastPathComponent
self.performSegueWithIdentifier("stopRecording", sender: recordedAudio)
} else {
println("Recording was not succesful")
recordB.enabled = true
stopButtonHide.hidden = true
}
}
第一个函数开始录制(据我所知),创建并存储一个音频文件(命名并获取路径。)第二个函数检查录制是否完成。我的问题是我看不到这两个函数是如何连接的。第二个函数如何知道在第一个函数中检查记录?有一个名为 RecordedAudio.swift 的单独类,它有两个变量:
import Foundation
class RecordedAudio: NSObject{
var filePathUrl: NSURL!
var title: String!
}
为什么我需要这个课程?这个类的目的是什么(我知道它是 MVC 的模型部分,但仅此而已)?我试图了解我的代码中发生了什么,因为从我正在关注的教程中我并不清楚。
【问题讨论】:
-
我在这里遇到的主要问题是第一个函数的音频如何传递给第二个函数:第二个函数是否获取正在录制的任何音频?
recorder.url和recorder.url.lastPathComponant是如何工作的?这两项是如何获取数据的?
标签: ios swift audio avaudiorecorder