[swift] 마이크를 이용한 실시간 사운드 녹음하기

이번에는 Swift 언어를 사용하여 iOS 애플리케이션에서 마이크를 사용하여 실시간으로 사운드를 녹음하는 방법에 대해 알아보겠습니다. 아래는 간단한 예제 코드입니다.

import AVFoundation

class Recorder {
    var audioRecorder: AVAudioRecorder!

    init() {
        let session = AVAudioSession.sharedInstance()
        try! session.setCategory(.playAndRecord, mode: .default, options: [])
        try! session.setActive(true)
        
        let url = // 녹음 파일이 저장될 URL
        
        let settings = [
            AVFormatIDKey: kAudioFormatAppleLossless,
            AVEncoderAudioQualityKey: AVAudioQuality.max.rawValue,
            AVEncoderBitRateKey: 320000,
            AVNumberOfChannelsKey: 2,
            AVSampleRateKey: 44100.0
        ] as [String : Any]
        
        try! audioRecorder = AVAudioRecorder(url: url, settings: settings)
        audioRecorder.delegate = self
        audioRecorder.prepareToRecord()
    }
    
    func startRecording() {
        audioRecorder.record()
    }
    
    func stopRecording() {
        audioRecorder.stop()
    }
}

extension Recorder: AVAudioRecorderDelegate {
    func audioRecorderDidFinishRecording(_ recorder: AVAudioRecorder, successfully flag: Bool) {
        if flag {
            // 녹음이 성공적으로 완료된 후 처리할 로직
        }
    }
}

이 코드에서는 AVAudioRecorder 클래스를 사용하여 사운드를 녹음합니다. Recorder 클래스를 초기화할 때 AVAudioSession을 설정하고, 녹음 파일을 저장할 URL과 녹음 설정을 정의합니다. startRecording() 메서드를 호출하면 녹음이 시작되고, stopRecording() 메서드를 호출하면 녹음이 멈춥니다. 녹음이 완료되면 audioRecorderDidFinishRecording 메서드가 호출되며, 여기에서 녹음이 성공적으로 완료되었을 때의 로직을 처리할 수 있습니다.

결론

이렇게 Swift를 사용하여 iOS 애플리케이션에서 마이크를 사용하여 실시간으로 사운드를 녹음하는 방법에 대해 알아보았습니다. 위의 예제 코드를 참고하여 원하는 애플리케이션에 사운드 녹음 기능을 추가해 보세요!

참고 자료