[swift] 스위프트에서 미디어 플레이어를 이용한 녹음 기능 추가하기

스위프트로 iOS 앱을 개발하는 중에 녹음 기능을 추가하고 싶다면, AVAudioRecorder 클래스를 사용하여 간단하게 구현할 수 있습니다. 이 클래스는 오디오를 녹음하는 데 사용되며, AVFoundation 프레임워크에 포함되어 있습니다.

단계 1: 권한 요청

먼저, 녹음 권한을 요청해야 합니다. Info.plist에 NSMicrophoneUsageDescription 키를 추가하여 마이크에 접근하는 이유를 설명하는 메시지를 작성하세요.

<key>NSMicrophoneUsageDescription</key>
<string>마이크를 사용하여 오디오를 녹음합니다.</string>

단계 2: 녹음 기능 구현

다음으로, 녹음 기능을 구현할 수 있는 뷰 컨트롤러 내에서 AVAudioRecorder 인스턴스를 만들고 설정해야 합니다.

import AVFoundation

class RecorderViewController: UIViewController, AVAudioRecorderDelegate {
    var audioRecorder: AVAudioRecorder!

    func setupRecorder() {
        let audioSession = AVAudioSession.sharedInstance()
        do {
            try audioSession.setCategory(.playAndRecord, mode: .default)
            try audioSession.setActive(true)
            let settings = [
                AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
                AVSampleRateKey: 44100,
                AVNumberOfChannelsKey: 2,
                AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
            ]
            audioRecorder = try AVAudioRecorder(url: audioFileURL, settings: settings)
            audioRecorder.delegate = self
            audioRecorder.prepareToRecord()
        } catch {
            print("Error setting up audio recording: \(error.localizedDescription)")
        }
    }
}

단계 3: 녹음 시작 및 중지

이제, 사운드 녹음을 시작하고 중지하는 기능을 추가합니다.

extension RecorderViewController {
    func startRecording() {
        if audioRecorder.isRecording == false {
            audioRecorder.record()
        }
    }

    func stopRecording() {
        if audioRecorder.isRecording {
            audioRecorder.stop()
        }
    }
}

결론

이제 스위프트에서 미디어 플레이어를 이용하여 녹음 기능을 추가하는 방법을 배웠습니다. 이제 사용자가 앱 내에서 오디오를 녹음할 수 있는 기능을 구현할 수 있습니다. 물론 결과물을 저장하고 재생하는 기능도 추가할 수 있습니다.

참고 문헌: