Recording audio in Swift

后端 未结 8 1839
别那么骄傲
别那么骄傲 2020-12-04 06:12

Does anyone know where I can find info on how to record audio in a Swift application? I\'ve been looking at some of the audio playback examples but I can\'t seem to be able

8条回答
  •  青春惊慌失措
    2020-12-04 06:52

    Code in Class file Using Swift 4

    Class is AGAudioRecorder

    Code is

    class AudioRecordViewController: UIViewController {
    
        @IBOutlet weak var recodeBtn: UIButton!
        @IBOutlet weak var playBtn: UIButton!
    
        var state: AGAudioRecorderState = .Ready
    
        var recorder: AGAudioRecorder = AGAudioRecorder(withFileName: "TempFile")
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            recodeBtn.setTitle("Recode", for: .normal)
            playBtn.setTitle("Play", for: .normal)
            recorder.delegate = self
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
        @IBAction func recode(_ sender: UIButton) {
            recorder.doRecord()
        }
    
        @IBAction func play(_ sender: UIButton) {
            recorder.doPlay()
        }
    }
    
    extension AudioRecordViewController: AGAudioRecorderDelegate {
        func agAudioRecorder(_ recorder: AGAudioRecorder, withStates state: AGAudioRecorderState) {
            switch state {
            case .error(let e): debugPrint(e)
            case .Failed(let s): debugPrint(s)
    
            case .Finish:
                recodeBtn.setTitle("Recode", for: .normal)
    
            case .Recording:
                recodeBtn.setTitle("Recoding Finished", for: .normal)
    
            case .Pause:
                playBtn.setTitle("Pause", for: .normal)
    
            case .Play:
                playBtn.setTitle("Play", for: .normal)
    
            case .Ready:
                recodeBtn.setTitle("Recode", for: .normal)
                playBtn.setTitle("Play", for: .normal)
                refreshBtn.setTitle("Refresh", for: .normal)
            }
            debugPrint(state)
        }
    
        func agAudioRecorder(_ recorder: AGAudioRecorder, currentTime timeInterval: TimeInterval, formattedString: String) {
            debugPrint(formattedString)
        }
    }
    

提交回复
热议问题