[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()
}
}
}
결론
이제 스위프트에서 미디어 플레이어를 이용하여 녹음 기능을 추가하는 방법을 배웠습니다. 이제 사용자가 앱 내에서 오디오를 녹음할 수 있는 기능을 구현할 수 있습니다. 물론 결과물을 저장하고 재생하는 기능도 추가할 수 있습니다.
참고 문헌: