Advertisement
Guest User

Code to Record Audio in iOS Swift

a guest
Apr 20th, 2015
539
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1.  
  2. class RecordAudioViewController: UIViewController, AVAudioRecorderDelegate, AVAudioPlayerDelegate {
  3.  
  4. var nameBaby: String = ""
  5. var isRecording: Bool = false
  6. var audioRecorder: AVAudioRecorder!
  7. var audioPlayer: AVAudioPlayer!
  8.  
  9.  
  10. @IBOutlet weak var btn_recordName: UIButton!
  11.  
  12. @IBOutlet weak var lbl_recdString: UILabel!
  13.  
  14. @IBOutlet weak var btn_play: UIButton!
  15.  
  16. @IBAction func action_btn_recordName(sender: AnyObject) {
  17.  
  18. println("in onCLick of action_btn_recordName")
  19.  
  20. if isRecording == true {
  21. isRecording = false
  22.  
  23. if audioRecorder?.recording == true {
  24. audioRecorder?.stop()
  25. } else {
  26. audioPlayer?.stop()
  27. }
  28.  
  29. } else {
  30. isRecording = true
  31.  
  32. //Start Recording here
  33. audioRecorder?.record()
  34. }
  35. }
  36.  
  37.  
  38.  
  39. @IBAction func action_btn_play(sender: AnyObject) {
  40.  
  41. if audioRecorder?.recording == false {
  42.  
  43. var error: NSError?
  44.  
  45. audioPlayer = AVAudioPlayer(contentsOfURL: audioRecorder?.url,
  46. error: &error)
  47.  
  48. audioPlayer?.delegate = self
  49.  
  50. if let err = error {
  51. println("audioPlayer error: \(err.localizedDescription)")
  52. } else {
  53. audioPlayer?.play()
  54. }
  55. }
  56. }
  57.  
  58. override func viewDidLoad() {
  59. println("in viewDidLoad of RecordAudioViewController")
  60. btn_recordName.setTitle("Record", forState: UIControlState.Normal)
  61. btn_recordName.setTitle("Stop", forState: UIControlState.Highlighted)
  62. lbl_recdString.text = nameBaby
  63.  
  64.  
  65. prepareForRecording()
  66.  
  67.  
  68.  
  69. }
  70.  
  71.  
  72. func prepareForRecording() {
  73. //Trial 2 - for setting up recording audio
  74. // http://www.techotopia.com/index.php/Recording_Audio_on_iOS_8_with_AVAudioRecorder_in_Swift
  75. let dirPaths =
  76. NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
  77. .UserDomainMask, true)
  78. let docsDir = dirPaths[0] as! String
  79. let soundFilePath =
  80. docsDir.stringByAppendingPathComponent("sound.caf")
  81. let soundFileURL = NSURL(fileURLWithPath: soundFilePath)
  82. let recordSettings =
  83. [AVEncoderAudioQualityKey: AVAudioQuality.Min.rawValue,
  84. AVEncoderBitRateKey: 16,
  85. AVNumberOfChannelsKey: 2,
  86. AVSampleRateKey: 44100.0]
  87.  
  88. var error: NSError?
  89.  
  90. let audioSession = AVAudioSession.sharedInstance()
  91. audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord,
  92. error: &error)
  93.  
  94. if let err = error {
  95. println("audioSession error: \(err.localizedDescription)")
  96. }
  97.  
  98. audioRecorder = AVAudioRecorder(URL: soundFileURL,
  99. settings: recordSettings as [NSObject : AnyObject], error: &error)
  100.  
  101. if let err = error {
  102. println("audioSession error: \(err.localizedDescription)")
  103. } else {
  104. audioRecorder?.prepareToRecord()
  105.  
  106. }
  107.  
  108.  
  109.  
  110. }
  111.  
  112.  
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement