[swift] 사운드 재생 및 녹음 기능 사용하기

앱에 사운드를 재생하고 녹음하는 기능을 추가하려고 합니까? Swift에서는 사운드 관련 기능을 간단하게 구현할 수 있습니다. 이 문서에서는 Swift를 사용하여 사운드를 재생하고 녹음하는 방법에 대해 알아보겠습니다.

1. 사운드 재생하기

AVFoundation 프레임워크 추가

먼저, 사운드를 재생하기 위해 AVFoundation 프레임워크를 프로젝트에 추가해야 합니다. Xcode에서 프로젝트를 열고, Build Phases로 이동하여 Link Binary With Libraries에 AVFoundation을 추가합니다.

사운드 재생 코드

다음은 Swift를 사용하여 사운드를 재생하는 간단한 코드 예제입니다.

import AVFoundation

func playSound() {
    guard let url = Bundle.main.url(forResource: "sound", withExtension: "mp3") else { return }
    
    do {
        try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default)
        try AVAudioSession.sharedInstance().setActive(true)
        
        let player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)
        player.play()
    } catch let error {
        print(error.localizedDescription)
    }
}

위 코드에서는 AVAudioPlayer를 사용하여 사운드를 재생하고 있습니다.

2. 사운드 녹음하기

마이크 접근 권한 허용

사운드를 녹음하려면 마이크에 대한 접근 권한을 요청해야 합니다. Info.plist 파일에 NSMicrophoneUsageDescription 키를 추가하여 사용자에게 마이크 접근 권한을 설명할 수 있습니다.

사운드 녹음 코드

다음은 Swift를 사용하여 사운드를 녹음하는 코드 예제입니다.

import AVFoundation

var audioRecorder: AVAudioRecorder!

func startRecording() {
    let audioFilename = getDocumentsDirectory().appendingPathComponent("recording.m4a")

    let settings = [
        AVFormatIDKey: Int(kAudioFormatMPEG4AAC),
        AVSampleRateKey: 12000,
        AVNumberOfChannelsKey: 1,
        AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue
    ]

    do {
        audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
        audioRecorder.record()
    } catch {
        print("Recording failed")
    }
}

func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    return paths[0]
}

위 코드에서는 AVAudioRecorder를 사용하여 사운드를 녹음하고 있습니다.


이제, Swift를 사용하여 앱에 사운드를 재생하고 녹음하는 기능을 구현하는 방법을 알게 되었습니다. AVFoundation 프레임워크를 사용하면 간단한 코드 몇 줄로도 사운드 관련 기능을 쉽게 추가할 수 있습니다.